rbind从list到data.frame的不同长度的时间和值向量

rbind从list到data.frame的不同长度的时间和值向量,r,list,plyr,rbind,R,List,Plyr,Rbind,在此之前,我对没有提供可复制的示例表示歉意,但我希望 通过我的描述,这个案子变得很清楚 我有一份长长的资产价格清单,上面附有日期。 列表如下所示 > my.list [[1]] AT0000743059.time AT0000743059 1 02.01.2012 24.020 2 03.01.2012 24.225 3 04.01.2012 24.130 4 05.01.

在此之前,我对没有提供可复制的示例表示歉意,但我希望 通过我的描述,这个案子变得很清楚

我有一份长长的资产价格清单,上面附有日期。 列表如下所示

> my.list

[[1]]
AT0000743059.time     AT0000743059
1          02.01.2012       24.020
2          03.01.2012       24.225
3          04.01.2012       24.130
4          05.01.2012       23.935


[[2]]
AT0000743055.time     AT0000743055
1          02.01.2012       24.020
2          03.01.2012       24.225
3          04.01.2012       24.130
4          05.01.2012       23.935
5          09.01.2012       24.060
并非列表中的所有对象都具有相同的长度。 我需要的是将列表中的每个对象彼此相邻地rbind,以使输出看起来像这样

    AT0000743059.time AT0000743059  AT0000743055.time     AT0000743055
1          02.01.2012       24.020         02.01.2012           24.020
2          03.01.2012       24.225         03.01.2012           24.225
3          04.01.2012       24.130         04.01.2012           24.130
4          05.01.2012       23.935         05.01.2012           23.935
5          NA               NA             09.01.2012           24.060
使用plyr的ldply以

> plyr::ldply(my.list, cbind)

    AT0000743059.time AT0000743059  AT0000743055.time  AT0000743055
1          02.01.2012       24.020  NA                 NA       
2          03.01.2012       24.225  NA                 NA
3          04.01.2012       24.130  NA                 NA       
4          05.01.2012       23.935  NA                 NA       
5                                   02.01.2012         24.020
6                                   03.01.2012         24.225
7                                   04.01.2012         24.130
8                                   05.01.2012         23.935
9                                   09.01.2012         24.060
将NAs移动到底部,然后将其删除会导致问题 和以某种奇怪的方式转变的约会。我希望有一个有效的解决方案
解决这个问题的方法。感谢您的帮助

现在,合并是在一个循环中定义的,可能根本不是预期的,但这将为您提供我建议的输出:

my.list <-list(
  data.frame(AT0000743059.time = c("02.01.2012","03.01.2012","04.01.2012","05.01.2012"),
         AT0000743059 = c(24.020,24.225,24.130,23.935),
         stringsAsFactors = FALSE),
  data.frame(AT0000743055.time = c("02.01.2012","03.01.2012","04.01.2012","05.01.2012","09.01.2012"),
         AT0000743055 = c(24.020,24.225,24.130,23.935,24.060),
         stringsAsFactors = FALSE)
)

result <- my.list[[1]]
colnames(result)[1] <- "time"

for (i in 2:length(my.list)){
  temp <- my.list[[i]]
  colnames(temp)[1] <- "time"
  result <- merge(result, temp,all = TRUE)
}

my.list你真的想把他们联系起来,还是更合理地把他们加入时间栏?@Wannes Rosiers:这也是我可以处理的一个解决方案。你说可以把列表转换成一个大的xts对象吗?