我是R的新手并尝试从命名列表中创建数据框:
> z <- list(2,4)
> names(z) <- c("2010-01-01", "2010-01-02")
> z
$`2010-01-01`
[1] 2
$`2010-01-02`
[1] 4
即。结果应该与它产生的结果相同:
> data.frame(dates=as.Date(c("2010-01-01", "2010-01-02")), val=c(2,4))
dates val
1 2010-01-01 2
2 2010-01-02 4
你如何在R中干净利落地完成这项工作?
答案 0 :(得分:1)
这是使用R基函数的一种方法
> x <- do.call(rbind, z)
> data.frame(dates=as.Date(rownames(x)), val=x[,1], row.names=NULL)
dates val
1 2010-01-01 2
2 2010-01-02 4
使用plyr的ldply
> library(plyr)
> y <- ldply(z)
> transform(y, date=as.Date(.id), val=V1)[,-c(1,2)]
date val
1 2010-01-01 2
2 2010-01-02 4
答案 1 :(得分:1)
> data.frame(dates=as.Date(names(z)),val=unlist(z),row.names=NULL)
dates val
1 2010-01-01 2
2 2010-01-02 4