r - 循环遍历数据框中的所有列组合
问题描述
如何遍历数据框中所有可能的列组合,然后按函数在组中使用这些变量组合?例如,如果我有一个包含 2 列 A 和 B 的数据框,我想运行一个循环,该循环首先按 A 分组,然后按 B 分组,最后按 AB?
PS:我尝试过combn功能,但我们只能选择固定数量的组合(2,3等)。但是,我需要所有可能的列组合,这基本上等于列数。对于 4 列,这将是:1、2、3 和 4 的所有组合。谢谢!
解决方案
假设输入为s <- c("a","b","c","d")
,则所有组合都可以通过以下方式获得:
Map(function(v) apply(v,2, function(x) paste0(x,collapse = "")),sapply(seq_along(s), function(k) combn(s,k)))
这使:
[[1]]
[1] "a" "b" "c" "d"
[[2]]
[1] "ab" "ac" "ad" "bc" "bd" "cd"
[[3]]
[1] "abc" "abd" "acd" "bcd"
[[4]]
[1] "abcd"
此外,如果您希望所有组合都带有单独的字母,那么您可以使用:
> Map(as.data.frame, sapply(seq_along(s), function(k) t(combn(s,k))))
[[1]]
V1
1 a
2 b
3 c
4 d
[[2]]
V1 V2
1 a b
2 a c
3 a d
4 b c
5 b d
6 c d
[[3]]
V1 V2 V3
1 a b c
2 a b d
3 a c d
4 b c d
[[4]]
V1 V2 V3 V4
1 a b c d
希望以上内容对您的问题有所帮助
推荐阅读
- python - 如何在直方图中显示温度系列的符号变化?
- javascript - 无法读取 null 的属性“地图”
- oracle - 带有范围扫描的 Oracle SELECT PARTITION 语法
- python - 在 python 中返回来自网站的 xhr 请求列表
- html - 当前路径,{% 与这些 django 响应图像中的任何一个都不匹配
- google-app-engine - Gcloud 云构建本地组件失败并出现错误“加载配置文件时出错:cloudbuild.Build 中的未知字段“availableSecrets””
- docker - Docker 启动失败
- reactjs - 我只想在离开页面时将 React 本地状态保存到 redux
- javascript - 未在 Firestore 中创建用户
- r - 从指定的 x 值显示 geom_smooth() 趋势线