我发现这个问题已经被问过,但没有得到正确的答案。R使用变量列名在dplyr中的summarise函数中
我想计算两列均值之间的差异,但列名应由变量提供...到目前为止,我只找到了
对于固定的列名,它可以工作。
使用可变列,它不能工作。
as.name
函数将列名提供为文本,但这在这里不起作用...对于固定的列名,它可以工作。
x <- c('a','b')
df <- group_by(data.frame(a=c(1,2,3,4), b=c(2,3,4,5), c=c(1,1,2,2)), c)
df %>% summarise(mean(a) - mean(b))
使用可变列,它不能工作。
df %>% summarise(mean(x[1]) - mean(x[2]))
df %>% summarise(mean(as.name(x[1])) - mean(as.name(x[2])))
由于这个问题已经在3年前提出,并且dplyr
正在良好地发展,我想知道现在是否有答案。
x
是两个列名,因此是两个字符串。 - drmariodget
:df %>% summarise(mean(get(x[1])) - mean(get(x[2])))
。(说明:这段代码是使用R语言中的dplyr包对数据进行汇总统计,其中get()
函数用于获取对象名称所对应的值。该代码计算了数据框df
中第一个变量列和第二个变量列的均值差。) - moodymudskipperas.name
可以工作的。 - drmariod