r - 将数据框拆分为具有相同列数的 N 个子集
问题描述
如何将具有 250 列的数据框划分为 5 个子集,每个子集 50 列,并将它们分配给 5 个不同的变量?
我试过这个
df2 <- split(df, sample(1:5, ncol(df), replace=T))
但这仅基于行数而不是列数进行拆分
And I want something like this
ncol(df2_1) = 50
ncol(df2_2) = 50
ncol(df2_3) = 50
ncol(df2_4) = 50
ncol(df2_5) = 50
这些应该包括独立的列。
解决方案
使用@markus 的注释,使用 split.default,我们可以修改初始代码,并更改采样,以便我们在每个子集中得到 50 个,
制作一些虚拟数据,
df <- data.frame(matrix(1:250, ncol = 250))
然后拆分,(我们之所以这样拆分,@ markus 指出,这是一个更安全/更强大的版本)
df2 <- lapply(split.data.frame(t(df), sample(rep(1:5, ncol(df)/5))), t)
一个不太健壮但更简单的选项是:
df2 <- split.default(df, sample(rep(1:5, ncol(df)/5)))
给我们,
> ncol(df2$`1`)
[1] 50
> ncol(df2$`2`)
[1] 50
> ncol(df2$`3`)
[1] 50
> ncol(df2$`4`)
[1] 50
> ncol(df2$`5`)
[1] 50
推荐阅读
- javascript - DASH Javascript 客户端回调先于 Python 触发的 call_back
- mysql - 在mysql中按计数不同的值作为一个分组
- c++ - 在 C++ 中创建输入文件
- url - 在 IMPORTRANGE 函数中使用单元格引用,而不是 URL 地址
- python - 按计数日期分组并用 0 填充缺失的日期
- javascript - 如何从js将原始打印代码发送到ip打印机
- python - leetcode问题中没有定义NameError
- css - 如何使用 CSS 为使用 python-dash 创建的应用程序解析我的 Web 应用程序格式
- python - Python:安装geopandas时出错
- javascript - 如何使用字典根据 jQuery 中的另一个选择过滤选择选项?