我有一个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)
答案 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
的默认行为)它只能容纳一种数据类型。