【问题标题】:R: split dataframe into 3 partsR:将数据帧拆分为 3 部分
【发布时间】:2017-01-17 15:31:39
【问题描述】:

我正在尝试将数据框分为 3 部分。(4352 行) 我尝试了split(df,1:3),它完成了这项工作,但是当我尝试查看拆分 df 时,它给出了一个错误。

splitdf<-split(df, f = rep_len(1:3, nrow(df)   ))   
View(splitdf)

视图错误:参数暗示不同的行数:1451、1450*

我错过了什么吗?

【问题讨论】:

  • View 用于查看矩形对象,因此在查看之前它会尝试将对象强制转换为数据框。如果您尝试 as.data.frame(splitdf) 尝试将 3 个列表元素中的每一个放入单个列中,您将得到相同的错误(并且列表元素的长度不一样 -- sapply(splitdf, nrow)

标签: r dataframe split


【解决方案1】:

我们可以在rep 中使用length.out 参数

split(df, rep(1:3, length.out = nrow(df), each = ceiling(nrow(df)/3)))

【讨论】:

  • 我做了 split(df, as.numeric(gl(nrow(df), nrow(df)/3, nrow(df)))),但它把 df 分成了 1450 的 4 个部分,1450,1450 和 2.
  • 使用 3 而不是 nrow(df)/3,它给了我 1450 组 3 行
  • 它仍然没有工作,因为创建了 4 个组。我认为 n(row) 不能被 3 整除,这让我很难过
  • @DipeshSurana 假设你有 10 行,并且你想要 3 个大小相同的数据集,你会选择最后一行吗?
  • 我的错。我没有提到它,我需要 3 个部分并且大小不等。所以 4352 行变成 1450,1450,1452。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-16
相关资源
最近更新 更多