这个问题的最高职位帮助我将矢量平均分成一组偶数块:
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包
答案 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}}。由于列表中的每个向量都有不同数量的元素,因此您无法从中生成solution1
。 data.frame
要求每列的行数相同。