R语言如何获取带指定限制条件的combinations(9,2)组合结果
R语言筛选符合条件的二元组合实现方法
实现步骤
你只需要先生成1-9中任选2个元素的所有升序组合,再按给定条件过滤即可,以下提供两种常用实现方式:
方法1:使用gtools包的combinations函数
首次使用需先安装gtools包,已安装可跳过安装步骤:
# 安装依赖包 install.packages("gtools") # 加载gtools包 library(gtools) # 生成1-9取2个的所有升序组合 all_comb <- combinations(n = 9, r = 2, v = 1:9) # 按三个限制条件筛选 filtered_comb <- all_comb[ all_comb[,1] > 2 & all_comb[,2] < 7 & (all_comb[,1] + all_comb[,2]) < 11, ] # 打印结果 print(filtered_comb)
运行后输出结果如下:
[,1] [,2] [1,] 3 4 [2,] 3 5 [3,] 3 6 [4,] 4 5 [5,] 4 6
方法2:Base R原生实现(无需安装额外包)
用R自带的combn函数实现相同效果:
# 生成组合并转置为每行对应一个组合的矩阵 all_comb <- t(combn(x = 1:9, m = 2)) # 按条件筛选 filtered_comb <- all_comb[ all_comb[,1] > 2 & all_comb[,2] < 7 & (all_comb[,1] + all_comb[,2]) < 11, ] # 打印结果 print(filtered_comb)
运行结果和方法1完全一致,共5条符合条件的组合,和预期结果匹配。
内容的提问来源于stack exchange,提问作者Oleg Sunok
相关产品推荐
相关产品推荐

