在r中汇总与分类变量

时间:2015-11-06 15:08:55

标签: r aggregate

我需要按日期汇总,我的“日”数据集:

>

head(Day)
        Date Day Month Year  TimeDay Room Temperature Light     RH
1 02/09/2013   2     9 2013 08:00:00    2        21.7 71.76 100.00
2 02/09/2013   2     9 2013 08:15:00    2        21.7 61.27 100.00
3 02/09/2013   2     9 2013 08:30:00    2        21.7 58.96 100.00
4 02/09/2013   2     9 2013 08:45:00    2        21.8 52.96 100.00
5 02/09/2013   2     9 2013 09:00:00    2        22.0 59.92  86.26
6 02/09/2013   2     9 2013 09:15:00    2        22.2 65.12  84.01

但包括第6列,对应于房间号:

newDay <- aggregate(Day[, 6:9], list(Day$Date), mean,na.rm=TRUE)

我收到了以下警告:

  

有50个或更多警告(使用警告()查看前50个

并且新数据集“newDay”中的“Room”列会产生NAs。

是因为“房间”栏是一个因素吗?我该如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

由于您不需要TimeDay,我只需删除它,因为无法应用平均功能。我会用dplyr的summarise_each和group_by而不是聚合来做。在你的例子中,你使用了mean,所以我也使用了它。

    Day$TimeDay <- NULL
    library(dplyr)
    newDay <- summarise_each(group_by(Day, Date), funs(mean)) %>%
              select(-Day, -Month, -Year, -Room)

编辑: 添加管道,谢谢@ r2evans。删除房间,因为没有必要。