这个问题的最上面的帖子帮助我将向量平均划分为一组偶数 block :
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)
您应该看到的错误是“参数意味着不同的行数”。我特别困惑,因为我认为 as.data.frame() 函数可以处理这个问题,如下所示:
http://www.r-bloggers.com/converting-a-list-to-a-data-frame-2/
感谢您的帮助!
编辑1:
我已经接近这一行的解决方案,但是,引入的 NA 值会扭曲我寻求的输出:
ldply(solution1,data.frame)
ldply 来自 plyr 包
最佳答案
您阅读了 ?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 中创建一个新列solution1
中每个项目的 data.frame。由于列表中的每个向量都有不同数量的元素,因此您无法从中创建 data.frame
。 data.frame
要求每列具有相同的行数。
关于r - 拆分后将列表转换为数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23681931/