我已经在这里待了几个小时,似乎找不到解决方案。我有一个非常大的数据框(超过 150 万行),我想做一个相当具体的操作。首先,我的数据如下所示:
STATION DATE Precip
COOP 310 -7788 .24
COOP 310 -7788 .15
COOP 310 -6654 .59
COOP 310 -6654 .10
COOP 499 -7122 .64
COOP 499 -7122 .36
COOP 499 -7122 .14
COOP 499 -2350 .11
COOP 499 -2350 .85
我有一个气象站 ID (STATION)、一个 UNIX 纪元形式的日期 (DATE) 和降水值(下雨时的 15 分钟数据间隔)。我一直在尝试做的是确定每个站点每天下雨的每日降雨量总和。所需的输出如下所示:
STATION DATE 24-hour_PRECIP
COOP 310 -7788 0.39
COOP 310 -6654 0.69
COOP 499 -7122 1.14
COOP 499 -2350 0.96
我认为,这实质上意味着执行SPLIT
两次操作,一次根据相同的 STATION 值拆分所有数据,然后再次根据相同的 DATE 值。理论上,此输出将通过一个SAPPLY
操作运行,将SUM
函数应用于每个唯一日期/站点集中的数据集。我的方法(虽然错误):
数据框名称为“dfhour”:
sp1<-split(dfhour$Precip,dfhour$STATION)
我可以对这些数据执行 sapply 函数,但我想在使用 sapply 之前进一步拆分它。我知道做类似的事情
sapply(split(split(dfhour$Precip, dfhour$STATION),dfhour$DATE),FUN=sum)
将不起作用,因为函数的输出split
是列表,并且下一个split
函数将无法接受列表作为参数。有人对这个问题有任何指导吗?还有哪些其他功能可以帮助我到达我需要去的地方?