2016-10-21 78 views
2

我希望能夠幫助使用dplyr生成df組合的多個列的組合方式,並且-assuming可以 - 我無法獲得正確的語法。計算意味着2列與dplyr組合的意思

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附近,近x B.

非常感謝。

回答

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 
+0

MO *#@@ * KER!我正在嘗試這個df%>%group_by(trt1)%>%group_by(trt2)%>%summarize(avg = mean(count)) –

+1

非常感謝 - 我的頭痛突然消失了。 –

0

一個簡單的線性模型也給出了在這種情況下的答案(只是提醒去除攔截,以獲得正確的反差)(我做了一些調整,使給dplyr

df %>% lm(count~trt1:trt2-1, .) %>% .$coef 
#### trt1far:trt2A trt1near:trt2A trt1far:trt2B trt1near:trt2B 
####  4.000000  4.333333  4.000000  4.666667 

(因爲沒有用於定義數據的種子。框架,結果與其他答案不同)