首页 > 解决方案 > 在 R,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

标签: rdatedplyr

解决方案


If you want different data frames containing all of the information in the master data frame for each individual date, you could use the split() function.

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

推荐阅读