我有一个由3个不同列(a,b和噪声)组成的数据帧。 我想在两个第一列的所有不同组合上应用函数以及第三个变量的均值,并将其保存在名为c的新列中。 我的第一个想法是使用以下代码解决它
library(dplyr)
df <- data.frame(a = rep(c(1,2,3),each=9),
b = rep(c(1,2,3),length.out=3*9),
noise = rnorm(9*3*1000))
f <- function(a,b,c) a + b + c
result <- df %>% group_by(a,b) %>% summarise(c = f(a,b,mean(noise)))
令我惊讶的是,这给出了错误“错误:期望单个值”。 所以dlyr仍将a和b视为向量。 因此,问题可以通过有些混乱的代码来解决
result <- df %>% group_by(a,b) %>% summarise(c = f(a[1],b[1],mean(noise)))
我的问题是: