从R中的列表中提取时保留格式

时间:2013-07-15 08:30:59

标签: r list do.call

我有一个for循环,它在列表中存储一个日期和一些计算后的值。我想创建一个双列表(日期,值),但是当我从列表中提取值时,我无法保留日期格式:

n <- 5

x <- factor(1:3,levels=1:3,labels=c('a','b','c'))
dates <- as.Date(c('2000-01-01','2001-01-01','2002-01-01'))

mylist <- list()

for (i in 1:n) {

  #Some operations

  mylist[[i]] <- list(sample(dates,1),as.numeric(sample(x,1)))

}

z <- do.call(cbind,mylist)

1 个答案:

答案 0 :(得分:0)

您需要将数据结构更改为可以实际保存不同数据类型(即数据框)的数据结构,然后将rbind更改为:

for (i in 1:n) {

  #Some operations

  mylist[[i]] <- data.frame(sample(dates,1),as.numeric(sample(x,1)))

}

z <- do.call(rbind,mylist)

代码中的问题是cbind操作强制list强制为matrix(这是rbind / cbind的默认行为)它只能容纳一种数据类型。