拆分后将列表转换为数据框

时间:2014-05-15 14:58:03

标签: r split dataframe

这个问题的最高职位帮助我将矢量平均分成一组偶数块:

Split a vector into chunks in R

我现在的问题是我想从输出中构造数据帧。这是R语法中的问题:

d <- rpois(73,5)
solution1 <- split(d, ceiling(seq_along(d)/20))
ERROR <- as.data.frame(solution1)

您应该看到的错误是&#34;参数意味着行数不同。&#34;我特别困惑,因为我认为as.data.frame()函数可以处理这个问题,如下所示:

http://www.r-bloggers.com/converting-a-list-to-a-data-frame-2/

感谢您的帮助!

编辑1:

我接近使用此行的解决方案,但是,正在引入的NA值会扭曲我寻求的输出:

ldply(solution1,data.frame)

ldply来自plyr包

1 个答案:

答案 0 :(得分:1)

您是否阅读了?split帮助页面?您是否注意到unsplit()功能?这听起来就像你在这里想做的那样。

d <- rpois(73,5)
f <- ceiling(seq_along(d)/20) #factor for splitting
solution1 <- split(d, f)
unsplit(solution1 , f)

我不确定您对data.frame的期望是什么,但您收到的错误消息是因为as.data.frame()试图在您的data.frame中为{{}中的每个项创建一个新列。 1}}。由于列表中的每个向量都有不同数量的元素,因此您无法从中生成solution1data.frame要求每列的行数相同。