我想向数据框中添加新列,并填充存储在另一个数据框中的预定义值。最好的方法是什么?
很高兴拥有:如果新变量出现在 d2 中,是否可以使代码动态化?
可重现代码的数据
d1 <- head(iris) # dataframe 1 ----------
var <- c("var1", "var2", "var3")
val <- c(5, 7, 1)
d2 <- as.data.frame(cbind(var, val)) # dataframe 2 ----------
预期输出
第一个数据框
第二个数据框
期望输出
此致
最佳答案
一种方法是(这适用于任意数量的 var
s)
d1[as.character(d2$var)] <- rep(d2$val, each = nrow(d1))
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species var1 var2 var3
# 1 5.1 3.5 1.4 0.2 setosa 5 7 1
# 2 4.9 3.0 1.4 0.2 setosa 5 7 1
# 3 4.7 3.2 1.3 0.2 setosa 5 7 1
# 4 4.6 3.1 1.5 0.2 setosa 5 7 1
# 5 5.0 3.6 1.4 0.2 setosa 5 7 1
# 6 5.4 3.9 1.7 0.4 setosa 5 7 1
关于r - 将具有预定义值的列添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30620358/