过滤R,dplyr中的单个日期

时间:2018-06-27 23:44:21

标签: r date dplyr

我有一个大型数据集,包含大约60年的数据,我试图对数据集的水位列进行每日计算,其中包含不同位置的每日水位。为此,我认为我需要单独过滤每个日期,这非常耗时。有更快的方法吗?我曾考虑过编写一个函数,但是即使如此,我仍然必须键入各个日期(我认为吗?)。

这是我数据的头和尾:

X Date Water.Level..cm. Lat Long 1 1 1977-11-01 NA -12.80861 -48.24028 2 2 1977-11-02 NA -12.80861 -48.24028 3 3 1977-11-03 NA -12.80861 -48.24028 4 4 1977-11-04 NA -12.80861 -48.24028 5 5 1977-11-05 NA -12.80861 -48.24028 6 6 1977-11-06 NA -12.80861 -48.24028 350719 350719 1938-01-26 635 -5.533333 -47.48333 350720 350720 1938-01-27 667 -5.533333 -47.48333 350721 350721 1938-01-28 710 -5.533333 -47.48333 350722 350722 1938-01-29 717 -5.533333 -47.48333 350723 350723 1938-01-30 721 -5.533333 -47.48333 350724 350724 1938-01-31 690 -5.533333 -47.48333

这是我目前拥有的: nov1 <- dat %>% filter(Date == as.Date("1989-11-01"))

我想最终得到不同的数据帧,其中包含每个日期主数据帧中的所有数据:

X Date Water.Level..cm. Lat Long 1 4384 1989-11-01 711 -12.80861 -48.24028 2 10684 1989-11-01 NA -12.47056 -48.21139 3 10929 1989-11-01 240 -12.44722 -48.26806 4 15373 1989-11-01 275 -12.35500 -48.25889 5 37414 1989-11-01 246 -12.30444 -48.26222 6 51326 1989-11-01 240 -12.26194 -48.32917

2 个答案:

答案 0 :(得分:2)

如果希望每个日期的不同数据框都包含主数据框中的所有信息,则可以使用split()函数。

df_list <- split(dat, as.factor(dat$Date))

答案 1 :(得分:1)

使用group_by()summarise()

您正在寻找一种按因素汇总数据的方法,本例中为Date

data %>% group_by(Date) %>% summarise(mean = mean(Water.Level..cm.))

这将返回一个分组汇总表。有关更多信息,请参见this link