2016-06-02 2 views
-1

Я довольно новичок в программировании и этом сообществе. Надеюсь, один из вас поможет мне, потому что я застрял.Объединить строки, если они имеют одинаковые значения и взять из одного столбца среднее

У меня есть df, который выглядит следующим образом:

Time | Location | day | direction | speed 

08:00| 143.3 | Mo | L  | 120.0 

08:00| 143.3 | Mo | L  | 110.0 

09:00| 143.3 | Mo | L  | 120.0 

09:00| 143.3 | Mo | L  | 100.0 

09:00| 143.3 | Mo | L  | 110.0 

09:00| 143.3 | Mo | R  | 121.2 

Я хочу, чтобы объединить строки ЕСЛИ Time и Location и day и direction такие же, как другой строки. Если это все TRUE: он должен слить и взять mean скорости в одну строку.

Так оно и должно быть, глядя, как это:

Time | Location | day | direction | speed 

08:00| 143.3 | Mo | L  | 115.0 

09:00| 143.3 | Mo | L  | 110.0 

09:00| 143.3 | Mo | R  | 121.2 

Может кто-нибудь помочь мне с этим?

пс. Извините за плохой дисплей df! Я отредактирую это.

ответ

0
library(plyr) 
result = plyr::ddply(df,c("Time","Location","day","direction"),function(x){ 
    data.frame(speed=mean(x$speed)) 
}) 
result