2016-10-21 5 views
2

Я надеюсь на помощь в создании средств для комбинаций нескольких столбцов df с использованием dplyr, и -обязание можно - я не могу правильно получить синтаксис.вычислить средства для комбинаций из 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 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 * # @@ * КЭР! Я пробовал это df%>% group_by (trt1)%>% group_by (trt2)%>% summary (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 

(так как нет семян для определения вашего data.frame, результат отличается от других ответов)

Смежные вопросы