【发布时间】:2019-05-08 15:14:16
【问题描述】:
我有一个数据框 df。
df <- data.frame(c(4,4,4,4,4,4), c(0,0,0,0,0,0))
colnames(df) <- c("a", "b")
> df
a b
1 4 0
2 4 0
3 4 0
4 4 0
5 4 0
6 4 0
还有一个命名向量 v,其中名称对应于我的数据框中的列名。
v <- c(0.04, 0.01)
names(v) <- c("a", "b")
> v
a b
0.04 0.01
我的数据框中可以有很多列,向量总是有相应的名称。
我想从相应的向量中添加到列值的每个元素,所以我得到这样的结果:
> df
a b
1 4.04 0.01
2 4.04 0.01
3 4.04 0.01
4 4.04 0.01
5 4.04 0.01
6 4.04 0.01
我怎样才能用 dplyr 做到这一点? 到目前为止,我想出的只是
df %>% mutate_all(. = . + v[.])
但这给了我一个错误。
Error in mutate_all(., . = . + v[.]) :
argument 2 matches multiple formal arguments
问题是我不知道如何指出对应的列应该被对应的向量改变。
【问题讨论】: