R 按月份排序zoo对象-顺序
我有一个如下所示的数据框:R 按月份排序zoo对象-顺序,r,zoo,R,Zoo,我有一个如下所示的数据框: month SYMBOL val1 val2 val3 Jan/2017 A 3 4 6 Feb/2017 A 1 2 4 Mar/2017 A 2 5 3 Apr/2017 A 4 3 6 May/2017 A 6 2 8 Jan/2017 B 7 3 1 Feb/201
month SYMBOL val1 val2 val3
Jan/2017 A 3 4 6
Feb/2017 A 1 2 4
Mar/2017 A 2 5 3
Apr/2017 A 4 3 6
May/2017 A 6 2 8
Jan/2017 B 7 3 1
Feb/2017 B 3 7 3
Mar/2017 B 1 3 6
Apr/2017 B 7 2 8
May/2017 B 9 7 2
Jan/2017 C 0 8 6
Feb/2017 C 1 3 9
Mar/2017 C 3 3 1
Apr/2017 C 4 1 5
May/2017 C 6 7 1
SYMBOL val1 val2 val3
Jan/2017 A 3 4 6
Jan/2017 B 7 3 1
Jan/2017 C 0 8 6
Feb/2017 A 1 2 4
Feb/2017 B 3 7 3
Feb/2017 C 1 3 9
Mar/2017 A 2 5 3
Mar/2017 B 1 3 6
Mar/2017 C 3 3 1
Apr/2017 A 4 3 6
Apr/2017 B 7 2 8
Apr/2017 C 6 2 8
May/2017 A 9 7 2
May/2017 B 4 1 5
May/2017 C 6 7 1
当我将其转换为索引为yearmon的zoo对象时,“符号”列的变化如下:
month SYMBOL val1 val2 val3
Jan/2017 A 3 4 6
Feb/2017 A 1 2 4
Mar/2017 A 2 5 3
Apr/2017 A 4 3 6
May/2017 A 6 2 8
Jan/2017 B 7 3 1
Feb/2017 B 3 7 3
Mar/2017 B 1 3 6
Apr/2017 B 7 2 8
May/2017 B 9 7 2
Jan/2017 C 0 8 6
Feb/2017 C 1 3 9
Mar/2017 C 3 3 1
Apr/2017 C 4 1 5
May/2017 C 6 7 1
SYMBOL val1 val2 val3
Jan/2017 A 3 4 6
Jan/2017 B 7 3 1
Jan/2017 C 0 8 6
Feb/2017 A 1 2 4
Feb/2017 B 3 7 3
Feb/2017 C 1 3 9
Mar/2017 A 2 5 3
Mar/2017 B 1 3 6
Mar/2017 C 3 3 1
Apr/2017 A 4 3 6
Apr/2017 B 7 2 8
Apr/2017 C 6 2 8
May/2017 A 9 7 2
May/2017 B 4 1 5
May/2017 C 6 7 1
在创建一个动物园对象时,有没有一种方法可以按顺序排列年份,从而使符号保持AAA、BBB、CCC,而不是扭曲?zoo不可避免地将其更改为1-1-2-2-FEB,而不是符号A的1-5,符号B的1-5等等。zoo对象是一个时间序列,特别是时间序列具有有序的观测。如果您想表示一个不是时间序列的对象,那么要么不要使用zoo,要么以某种方式将其重新处理为时间序列 1多变量时间序列尽管下文注释中的数据不是时间序列,但通过在第二个输入列上拆分数据,可以将其表示为多变量时间序列:
library(zoo)
z <- read.zoo(text = Lines, split = 2, FUN = as.yearmon, format = "%b/%Y", header = TRUE)
2通过多个时间序列的列表,也可以将其表示为动物园对象的列表:
DF <- read.table(text = Lines, header = TRUE)
byz <- by(DF[-2], DF[2], function(x) read.zoo(x, FUN = as.yearmon, format = "%b/%Y"))
3合成索引操纵这样一个对象可能很困难,但为了涵盖所有可能性,可以从符号和月份列合成一个新索引,以创建一个具有如下字符索引的动物园系列
myindex <- function(sym, mon) paste(sym, format(as.yearmon(mon, "%b/%Y"), "%Y-%m"))
z2 <- read.zoo(text = Lines, index = 2:1, FUN = myindex, header = TRUE)
注:可复制形式的输入为:
Lines <- "month SYMBOL val1 val2 val3
Jan/2017 A 3 4 6
Feb/2017 A 1 2 4
Mar/2017 A 2 5 3
Apr/2017 A 4 3 6
May/2017 A 6 2 8
Jan/2017 B 7 3 1
Feb/2017 B 3 7 3
Mar/2017 B 1 3 6
Apr/2017 B 7 2 8
May/2017 B 9 7 2
Jan/2017 C 0 8 6
Feb/2017 C 1 3 9
Mar/2017 C 3 3 1
Apr/2017 C 4 1 5
May/2017 C 6 7 1"
你的代码是什么?
Lines <- "month SYMBOL val1 val2 val3
Jan/2017 A 3 4 6
Feb/2017 A 1 2 4
Mar/2017 A 2 5 3
Apr/2017 A 4 3 6
May/2017 A 6 2 8
Jan/2017 B 7 3 1
Feb/2017 B 3 7 3
Mar/2017 B 1 3 6
Apr/2017 B 7 2 8
May/2017 B 9 7 2
Jan/2017 C 0 8 6
Feb/2017 C 1 3 9
Mar/2017 C 3 3 1
Apr/2017 C 4 1 5
May/2017 C 6 7 1"