对不起,我可能使用了错误的搜索字词,但我找不到解决方案 .
给定两个参与者(id)的实验,每个参与者在两个不同参数(par1,par2)下执行任务6次:
id <- c(rep(1,6),rep(2,6))
par1 <- c(rep("a",9),rep("b",3))
par2 <- c(rep("c",3),rep("d",9))
val <- rnorm(12)
data <- data.frame(id,par1,par2,val)
如何用“id”,“par1”和“par2”的相同值替换所有行,其中“val”的值是被替换行的“val”值的平均值?
结果就是这样一个表格:
id par1 par2 val
1 a c (mean of row 1-3)
1 a d (mean of row 4-6)
2 a d (mean of row 7-9)
2 b d (mean of row 10-12)
2 回答
对于
dplyr
方法:这使:
这是
data.table
的选项 . 将'data.frame'转换为'data.table'(setDT(data)
),按'id','par1','par2'分组,获取mean
的'val'