R 将命名列表转换为data.fame cleanly(其中名称为日期)

R 将命名列表转换为data.fame cleanly(其中名称为日期),r,dataframe,R,Dataframe,我是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 如何在R中干净地实现这一点?这里有一种使用R基函数的方法 > x <- do.call(rbind, z) > data.frame(dates=as.Date(rownames(x)), val

我是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

如何在R中干净地实现这一点?

这里有一种使用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

如果你想得到正确的格式,你需要一个
as.Date()
,是的,很好的回答,没有看到问题中日期的格式,威尔会更新这一点。这很有趣。与mrip更紧凑的建议相比,这种方法的相对优点是什么?如果使用大型数据集,会更快吗?
> 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
> 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
> 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