xts对象列表的data.frames列表

时间:2013-08-02 19:18:11

标签: r dataframe plyr xts

我有一个data.frame,每月有72个时间序列,以长格式(垂直)堆叠。我使用拆分为每个系列创建list data.frames。我现在想要使用数据框中包含的data.framexts将每个value转换为date个对象。该列表有72个数据帧,我想要一个72 xts对象的返回列表。该列表如下:

LAUPS55030003:'data.frame': 282 obs. of  6 variables:
 ..$ series_id     : chr [1:282] "LAUPS55030003" "LAUPS55030003" "LAUPS55030003"    
 ...
 ..$ year          : int [1:282] 1990 1990 1990 1990 1990 1990 1990 1990 1990 1990 ...
 ..$ period        : chr [1:282] "01" "02" "03" "04" ...
  ..$ value         : num [1:282] 12.6 5.3 5.3 4.7 4.7 4.7 5.5 4.6 4.6 4.3 ...
  ..$ footnote_codes: chr [1:282] "" "" "" "" ...
  ..$ date          : Date[1:282], format: "1990-01-01" "1990-02-01" "1990-03-01" "1990-0 

我尝试使用llply和lapply无济于事甚至ddply。尝试编写as.xts函数时出错。我认为我的方向正确,但我的语法显然已关闭。

我也试过了:

lx <- dlply(ur, .(ur$series_id), .fun=(as.xts), ur[,4], order.by=ur[,6])

指针?

1 个答案:

答案 0 :(得分:2)

我不确定您的dlply来电有什么问题,但您应该使用xts代替as.xts

ur <- split(LAUPS55030003, LAUPS55030003$series_id)
xl <- lapply(ur, function(x) xts(x$value, x$date))
# and if you want each series in a column:
xc <- do.call(merge, xl)