我有一个大型数据集,包含大约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
答案 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。