2013-07-15 46 views
0

我有一個for循環,它在一些計算後在列表中存儲一個日期和一個值。我想創建一個兩列的表(日期,金額),但是當我從中提取列表中的值,我不能保存日期格式:當從R中的列表中提取時保留格式

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

你需要的數據結構轉變爲一種實際上可以持有不同的數據類型(即數據幀),然後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操作裹挾着listmatrix(這是rbind默認行爲/ cbind)它只能保持o ne數據類型。

+0

謝謝我雖然'list'可以處理不同的數據類型以及 – nopeva

+0

是的,但是當你通過'cbind'強制它時會發生問題。這將它轉換爲一個「矩陣」。看看你的'mylist'是什麼,'do.call'對它做了什麼。 – Henrik