r - 如何在给定条件下获得一组 R 中的所有组合?
问题描述
我有一套:
lynx <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,6,7,8,9)
我想返回一组所有组合,其中允许从上述集合中重复,例如:
1 1 1 1 1
1 2 2 8 9
我使用了库 gtools 中的组合功能,但没有帮助
我试过了:
combination(n = 9, r = 5, v = lynx, repeats.allowed=TRUE)
返回
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 1 1 1 1 2
[3,] 1 1 1 1 3
[4,] 1 1 1 1 4
但问题是它也会返回,
[152,] 1 1 2 8 8
这是我不想要的,因为集合中没有两个 8。
解决方案
谢谢@ekoam
lynx <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,6,7,8,9)
comb <- combinations(freq = table(lynx), k = 5, x = unique(lynx))
comb
图书馆:安排
推荐阅读
- javascript - odooo 12中many2many字段标签上的点击事件
- algorithm - 什么是弹性、鲁棒性和抗性算法?
- html - 为什么我的图标没有显示在我的网页上,我该如何做悬停效果?
- jestjs - Jest 无法测试指挥官帮助功能
- python - anaconda 环境中 pymeep-parallel 的包冲突
- angular - 如何通过 Angular 8 中的 id 获取元素来更改类并更改 div 的样式
- javascript - 恢复文件上传
- python - 如何有条件地删除熊猫中的行
- java - 如何将 RESTService 从我的核心应用程序导入到 JBPMSuite
- sql - 在oracle中如何从用户表的电子邮件列中检索具有@gmail扩展邮件的用户