我看了过去类似的问题,但还没有找到与我所寻找的具体问题。
我有一个日数据,我想把它转换为月数据的平均数。最终的产品是一个数据框,列中为月,行中为年。例子.
我已经设法得到我的数据集的月平均数,使用。
library(xts)
ts <- xts(data$tmax, as.Date(data$date, "%Y-%m-%d"))
ts_m = apply.monthly(ts, mean)
data$Date data$tmax
1 1951-01-01 3.22777778
2 1951-01-02 6.48888889
3 1951-01-03 10.52777778
4 1951-01-04 1.92777778
5 1951-01-05 1.30000000
6 1951-01-06 0.10000000
7 1951-01-07 -6.72777778
8 1951-01-08 -4.48888889
9 1951-01-09 -0.83888889
10 1951-02-01 -9.92777778
11 1951-02-02 -11.60000000
12 1951-02-03 -8.61111111
13 1951-02-04 -1.40000000
... ... ...
上面的代码给了我一个带有平均值的xts。
Y-M-D Tmax_avg
1951-01-09 1.279630
1951-02-12 -3.548611
但我不知道如何转换xts的布局(或者我是否必须转换xts),使它看起来像这样(月向下运行,年横跨)。
1951 1952 1953
01 1.27 ...
02 -3.54 ...
...
12 ... ...
先谢谢你!
我们可以提取 "年 "和 "日期",然后使用......。xtabs
Year <- format(as.Date(index(tsm)), '%Y')
Month <- format(as.Date(index(tsm)), '%m')
df1 <- data.frame(Year, Month, tmax = tsm[,1])
xtabs(tmax ~ Month + Year, df1)