如果行具有相同的值,则合并行,并从一列中取出均值

时间:2016-06-02 12:51:02

标签: r

我'对编程和这个社区来说,这是一个新手。希望你们中的一个可以帮助我,因为我被困住了。

我有一个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

如果TimeLocation以及daydirection与另一行相同,我想合并行。如果这都是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

任何人都可以帮我吗?

PS。很抱歉df显示效果不佳!我会编辑这个。

1 个答案:

答案 0 :(得分:0)

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