我希望能帮助生成使用dplyr组合多列df的方法,并且 - 假设一个可以 - 我无法正确使用语法。
df <- data.frame(trt1=c(replicate(6, "far"), replicate(6, "near")),
trt2=rep(c("A","A","A","B","B","B"), 2),
count=sample(1:8, 12, replace=T))
我知道如何通过一栏获得手段:
df %>% group_by(trt1) %>% summarise(avg=mean(count))
但无法弄清楚列组合的语法:远x A,远x B,靠近x A,靠近x B.
非常感谢。
答案 0 :(得分:3)
将trt2添加到group_by语句中。
df %>% group_by(trt1,trt2) %>% summarise(avg=mean(count))
trt1 trt2 avg
<fctr> <fctr> <dbl>
1 far A 3.000000
2 far B 1.333333
3 near A 5.000000
4 near B 4.666667
答案 1 :(得分:0)
一个简单的线性模型也给出了这种情况下的答案(只是提醒删除截距以获得正确的对比)(我做了一些调整以使dplyr 看起来)
@Test(expected = AnyException.class)
(因为没有用于定义数据的种子。框架,结果与其他答案不同)