计算2列与dplyr组合的方法

时间:2016-10-21 12:52:18

标签: r dplyr pivot-table

我希望能帮助生成使用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.

非常感谢。

2 个答案:

答案 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)

(因为没有用于定义数据的种子。框架,结果与其他答案不同)