2016-10-21 11 views
2

dplyrを使用してdfの複数の列を組み合わせる手段を生成するのに役立つと期待しています。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)) 

私は1つの列手段を取得する方法を知っている:、遠くAのx、遠くB、X、XのAの近く:

df %>% group_by(trt1) %>% summarise(avg=mean(count)) 

しかし、列の組み合わせのための構文を把握することはできません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)%>%summary(平均=平均) –

+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 

(あなたのデータの定義のための種がないので、結果は他の回答とは異なります)

関連する問題