【问题标题】:Convert a List to a Data Frame after a Split拆分后将列表转换为数据框
【发布时间】:2014-05-15 14:58:02
【问题描述】:

这个问题的顶部帖子帮助我将一个向量平均分成一组偶数块:

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 包

【问题讨论】:

  • 我还是很困惑
  • 你到底想做什么? 73 不均分,除了自己。

标签: r split dataframe


【解决方案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 中为 solution1 中的每个项目创建一个新列。而且由于列表中的每个向量都有不同数量的元素,因此您无法从中创建 data.framedata.frame 要求每列具有相同的行数。

【讨论】:

  • 非常好的分割数据框的解决方案。我需要额外的帮助,我希望在这个过程中创建的 4 个列表是 4 个单独的数据框,以便我可以进一步使用它们。我希望它们在本地可用。请帮忙,以上面的为例。
猜你喜欢
  • 2013-04-02
  • 2020-10-26
  • 2022-12-22
  • 2020-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 2022-01-15
相关资源
最近更新 更多