[英]Monthly Time series in R
我有一個2M Unix時間戳的數據框,我想每月做一次柱狀圖。 有什么建議么? 謝謝
如果DF
是我們的測試數據,則對具有動物園對象z
具有相同年份和月份的所有數據點取平均值,並將其繪制:
# test data
DF <- data.frame(Time = as.POSIXct(Sys.Date() + 1:1000), data = 1:1000)
library(zoo)
z <- read.zoo(DF, aggregate = mean, FUN = as.yearmon)
plot(z, type = "h")
解析它們(例如,通過as.POSIXct()
),以便使用適當的DateTime對象。
然后使用聚合例程,例如zoo和xts軟件包將它們用於時間索引結構,或者ddply更一般地使用它,或者您可以使用基本R函數。
你沒有說你想要的直方圖顯示。 只是計數? 在這種情況下,這是一個簡單的示例:
R> set.seed(42) # fix RNG
R> zz <- data.frame(val=runif(100), ts=Sys.time() - 6*31*24*60*60*runif(100))
R> summary(zz) # values over June to Nov 2011 period
val ts
Min. :0.000239 Min. :2011-06-01 09:56:20.50
1st Qu.:0.259673 1st Qu.:2011-07-10 01:43:58.81
Median :0.539714 Median :2011-08-14 22:19:12.73
Mean :0.524479 Mean :2011-08-22 17:57:00.34
3rd Qu.:0.763614 3rd Qu.:2011-10-11 10:24:16.34
Max. :0.988892 Max. :2011-11-27 03:51:25.63
R> zz$mon <- as.POSIXlt(zz$ts)$mon + 1
R> summary(zz) # now we have the month as a column
val ts mon
Min. :0.000239 Min. :2011-06-01 09:56:20.50 Min. : 6.00
1st Qu.:0.259673 1st Qu.:2011-07-10 01:43:58.81 1st Qu.: 7.00
Median :0.539714 Median :2011-08-14 22:19:12.73 Median : 8.00
Mean :0.524479 Mean :2011-08-22 17:57:00.34 Mean : 8.29
3rd Qu.:0.763614 3rd Qu.:2011-10-11 10:24:16.34 3rd Qu.:10.00
Max. :0.988892 Max. :2011-11-27 03:51:25.63 Max. :11.00
R> ddply(zz, .(mon), "nrow") # so count rows by month
mon nrow
1 6 17
2 7 22
3 8 18
4 9 15
5 10 14
6 11 14
R>
您可以按月對這些計數進行簡單的直方圖繪制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.