我正在尝试使用data.frame
将zoo
转换为read.zoo
个对象。这一切看起来都很好,只是原始索引只包含年份(没有几个月或几天),但是当我看到它们出现时。
有没有办法创建索引为年的新对象?
test.df3 <- data.frame (Country = rep (c (1, 5000), each = 10),
Year = factor(rep(1990:1999, 2)),
Values = sample(x = 1:20, size = 20, replace = TRUE),
Weights = sample (x = seq (0,50,10), size = 20,
replace =TRUE)
)
stuff <- read.zoo (test.df3, format = "%Y", index.column = 2)
这就是我得到的:
> head(stuff)
Country Values Weights
1990-01-10 1 2 50
1990-01-10 5000 19 0
1991-01-10 1 10 30
1991-01-10 5000 3 20
这是我希望得到的:
> head(stuff)
Country Values Weights
1990 1 2 50
1990 5000 19 0
1991 1 10 30
1991 5000 3 20
答案 0 :(得分:2)
指定format
而不是FUN
或tz
会导致启发式假设您需要"Date"
类索引。指定FUN=identity
不进行转换,并省略format=
。此外,似乎有两个国家混合的时间序列,因此我们可以使用split=
将它们分成各自的系列。
read.zoo(test.df3, index = "Year", split = "Country", FUN = identity)
给出:
Values.1 Weights.1 Values.5000 Weights.5000
1990 6 50 2 30
1991 14 20 7 50
1992 7 40 6 0
1993 18 30 17 20
1994 10 50 13 0
1995 3 0 17 40
1996 4 20 16 40
1997 20 20 18 20
1998 9 20 16 30
1999 20 0 15 30