【发布时间】:2021-04-14 18:19:37
【问题描述】:
我想在 dplyr 中使用 mutate 跨数据框中的列应用一个函数。我想使用粘贴来引用列。
这里是示例数据,但实际数据集有很多列,使粘贴功能成为关键:
data <- data.frame(var1 = c(1:4), var2 = (5:8))
data
var1 var2
1 1 5
2 2 6
3 3 7
4 4 8
当不带引号单独调用列时,我可以正常工作:
data <- data %>%
rowwise() %>%
mutate(
total = sum(var1,var2)
)
data
# A tibble: 4 x 3
# Rowwise:
var1 var2 total
<int> <int> <int>
1 1 5 6
2 2 6 8
3 3 7 10
4 4 8 12
但是,我希望能够使用粘贴来调用列:
data <- data %>%
rowwise() %>%
mutate(
total = sum(paste("var",c(1:2),sep=""))
)
这会返回这个错误:
Error: Problem with `mutate()` input `total`.
x invalid 'type' (character) of argument
ℹ Input `total` is `sum(paste("var", c(1:2), sep = ""))`.
ℹ The error occurred in row 1.
Run `rlang::last_error()` to see where the error occurred.
【问题讨论】:
标签: r