我有一个包含两列(年和降水量)的数据框。在单列中,列出的年份从1900年开始,到2014年结束,再到1900年开始。在另一列中,我具有相应年份的降水值。现在,我想将1900年的所有降水作为1值并将1901年的所有降水作为1加到2014年。我的数据如下:

Year    Precipitation

1900    4.826
1901    37.592
2014    14.224
1900    45.974
1901    46.228
2014    79.502
1900    52.578
1901    22.30
2014    15.25

结果应如下所示:
Year   Precipitation

1900   103.378
1901   106.12
2014   108.976

到目前为止,我已经编写了代码,但是如果有人可以修复它,它将无法正常工作?
data=read.table('precipitation.csv',header=T,sep=',')
frame=data.frame(data)
cumcum=tapply(frame$Precipitation, cumsum(frame$year==1), FUN=sum, na.rm=TRUE)

谢谢

最佳答案

试试data.table

library(data.table)
frame=fread('precipitation.csv',header=TRUE,sep=',')
frame[, sum(Precipitation), by = Year]

关于r - 在r的数据框中按年份求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29361035/

10-10 05:14