我不熟悉時間序列分析和使用xts(以及一般的R),所以請原諒問題的基本性質。按時間和秒(因子)變量彙總xts對象中的數據
我想按時間範圍(例如幾個月)和第二個因子變量聚合數據。爲了說明我的問題,請參閱以下內容:
require(xts)
# Create example df and convert it to an xts object
date <- sample(seq(as.Date("2015/01/01"), as.Date("2016/12/31"), by="day"),12)
colour <- c("Red", "Red", "Blue", "Blue", "Blue", "Blue", "Red", "Red", "Red",
"Red", "Blue", "Blue")
value <- sample(1:10, 12, replace = TRUE)
df <- cbind.data.frame(date, colour, value)
df <- xts(df[,-1], order.by = df$date)
這將創建一個樣本數據框,看起來像這樣:
colour value
2015-01-30 "Blue" "2"
2015-03-15 "Blue" "9"
2015-03-22 "Blue" "9"
2015-08-13 "Blue" "5"
2015-09-01 "Blue" "8"
2015-11-10 "Red" "7"
2016-04-26 "Blue" "2"
2016-07-06 "Red" "9"
2016-07-07 "Red" "6"
2016-07-08 "Red" "2"
2016-10-01 "Red" "6"
2016-11-07 "Red" "2"
我可以用概括的「值」變量:
apply.monthly(df$value, FUN = mean)
給我:
value
2015-01-30 2.000000
2015-03-22 9.000000
2015-08-13 5.000000
2015-09-01 8.000000
2015-11-10 7.000000
2016-04-26 2.000000
2016-07-08 5.666667
2016-10-01 6.000000
2016-11-07 2.000000
但我不太明白如何聚合(在這種情況下)顏色變量(我想每個月的顏色總和)。任何幫助將不勝感激。
非常有幫助@NBATrends Thi s解決方案有效,但會創建一個「Month」變量,它是「Character」類。有沒有辦法確保輸出保持爲「Date」類?我確實嘗試過'as.Date(df $ Month,format =「%Y-%m」),但無濟於事。感謝你的幫助。 – drgregmartin