r - 将具有预定义值的列添加到数据框

标签 r dplyr

我想向数据框中添加新列,并填充存储在另一个数据框中的预定义值。最好的方法是什么?

很高兴拥有:如果新变量出现在 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 ----------

预期输出

第一个数据框

enter image description here

第二个数据框

enter image description here

期望输出

enter image description here

此致

最佳答案

一种方法是(这适用于任意数量的 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/

相关文章:

r - 使用 dplyr 的 select if 函数根据范围条件选择列

r - dplyr 的过滤函数 : how to return every value (or «cancel» the effect of filter)?

r - dplyr:过滤标记时间段之前的几年内

r - 我有一个稀疏矩阵,当我在 R 中打开它时,所有应该为 0 的元素都是像 ' . ' 这样的点,如何将这个点转换为数字 0?

r - 在knitr html中输出R循环内容和输出

r - 在 R 中将空值转换为 NULL - 处理日期列

r - 如何将一个数据框逐行拆分成多个数据框,然后导出到excel? R

r - 文件上传后 Shiny 的 dplyr 过滤器不起作用

r - 在 dplyr 中使用 group_by() 与 filter() 类似吗?

r - 如何创建一个新的因子水平来汇总其他因子水平的总值?