動物園對象是時間序列,通常是數字向量或矩陣。看起來你真正擁有的是一系列不同的時間序列,其中第5列確定了它的系列。也就是說,有一個蘋果系列,一個橙色系列,一個奇異果系列等,每個系列都有幾列。
刪除最後一列,因爲它不是數字,使用第三列第5列的索引和分裂我們:
# create test data
Lines <- "Var_1 Var_2 Date VaR_3 VaR_4 VaR_5 Var_6
1 4 2010-01-18 7 apple 10 sweet
2 5 2010-07-19 8 orange 11 sour
3 6 2010-01-18 9 kiwi 12 juicy"
cat(Lines, "\n", file = "data.txt")
library(zoo)
z <- read.zoo("data.txt", header = TRUE, index = 3, split = "VaR_5",
colClasses = c(Var_6 = "NULL"))
結果是:
> z
Var_1.apple Var_2.apple VaR_3.apple VaR_5.apple Var_1.kiwi
2010-01-18 1 4 7 10 3
2010-07-19 NA NA NA NA NA
Var_2.kiwi VaR_3.kiwi VaR_5.kiwi Var_1.orange Var_2.orange
2010-01-18 6 9 12 NA NA
2010-07-19 NA NA NA 2 5
VaR_3.orange VaR_5.orange
2010-01-18 NA NA
2010-07-19 8 11
上述假設對於列5的給定值,日期是唯一的。如果不是這種情況,則包括aggregate = mean
參數或aggregate
的其他值。
到現在聚合成一個每月動物園系列有:
aggregate(z, as.yearmon, mean)
這也有可能通過使用FUN = as.yearmon
參數,將其轉換馬上到每月:
zm <- read.zoo("data.txt", header = TRUE, index = "Date", split = "VaR_4",
FUN = as.yearmon, colClasses = c(Var_6 = "NULL"), aggregate = mean)
見?read.zoo
,vignette("zoo-read")
,?aggregate.zoo
以及其他短片和幫助文件。
似乎問題1的工作: df.z <-read.zoo(DF,index.column = 3,合計= F) – John