【发布时间】:2020-09-14 15:34:32
【问题描述】:
我想创建一个函数,我可以在其中提供数据集和前缀列表。它使用这些前缀来构造涉及使用这些前缀的列,并返回最终的数据集,如下所示:
data <- data.frame(demo1_a = 3,demo1_b = 5, demo2_a = 4,demo2_b = 5)
make_vars(data, prefixes = list('demo1', 'demo2'))
make_vars <- function(data, prefixes){
for(i in prefixes){
data = data %>%
mutate({i}_subtraction = {i}_a - {i}_b,
{i}_addition = {i}_a + {i}_b,
)
}
return(data)
}
结果 data.frame 如下所示:
demo1_a demo1_b demo2_a demo2_b demo1_subtraction demo1_addition demo2_addition demo2_subtraction
1 3 5 4 5 -2 8 9 -1
我在这个答案中看到:https://stackoverflow.com/a/59224230/372526,它们在 rlang 中引用了大卷曲运算符 ({{}}),它允许您动态引用变量名,但我还没有找到如何“粘贴”其他后缀,如“_subtraction”和“_b”,通过函数。
【问题讨论】:
-
我不认为你想要的结果符合你的要求,为什么你需要 a 和 b 也不应该起始 df 是
data <- data.frame(a = 1, b = 2, demo1_a = 3,demo1_b = 5, demo2_a = 4,demo2_b = 5) -
你是对的。我不小心复制了这个问题的早期版本