我正在从SAS迁移到R.我需要帮助了解如何总结日期范围的天气数据。在SAS中,我使用日期范围,使用数据步骤为范围内的每个日期创建记录(使用startdate
,enddate
,date
),合并天气然后汇总(VAR hdd cdd; CLASS = startdate enddate sum =)总结日期范围的值。使用一个数据帧对R中另一个数据帧的数据范围求和
R代码里面:
startdate <- c(100,103,107)
enddate <- c(105,104,110)
billperiods <-data.frame(startdate,enddate);
获得:
> billperiods
startdate enddate
1 100 105
2 103 104
3 107 110
R代码里面:
weatherdate <- c(100:103,105:110)
hdd <- c(0,0,4,5,0,0,3,1,9,0)
cdd <- c(4,1,0,0,5,6,0,0,0,10)
weather <- data.frame(weatherdate,hdd,cdd)
获得:
> weather
weatherdate hdd cdd
1 100 0 4
2 101 0 1
3 102 4 0
4 103 5 0
5 105 0 5
6 106 0 6
7 107 3 0
8 108 1 0
9 109 9 0
10 110 0 10
注:缺失weatherdate = 104
。我可能一天都没有天气。
我无法弄清楚如何获得:
> billweather
startdate enddate sumhdd sumcdd
1 100 105 9 10
2 103 104 5 0
3 107 110 13 10
其中sumhdd
是的总和hdd
的从startdate
到enddate
天气data.frame
。
任何想法?
感谢您的快速响应!我试图对付更大的数据帧(12356行),它花了7.89秒,结果很好!我很惊讶人们回应的速度有多快。这是我第一次在这里问一个问题。 – 2013-03-25 22:08:47