R语言:如何获取向量的无重复元素组合(排除同行重复项)
解决方法:过滤expand.grid中的重复元素行
没问题,要实现你想要的效果其实很简单!只需要在生成全组合之后,加一步筛选,把Var1和Var2元素相同的行去掉就好。
直接看代码示例:
test <- c("A","B","C","D") # 生成所有有序组合 full_combinations <- expand.grid(test, test) # 过滤掉Var1与Var2元素相同的行 filtered_combinations <- full_combinations[full_combinations$Var1 != full_combinations$Var2, ] # 查看最终结果 filtered_combinations
运行这段代码后,你就能得到和期望完全一致的输出:
Var1 Var2 2 B A 3 C A 4 D A 5 A B 7 C B 8 D B 9 A C 10 B C 12 D C 13 A D 14 B D 15 C D
简单解释下逻辑:expand.grid(test, test)会生成4×4=16种所有可能的有序组合,我们用full_combinations$Var1 != full_combinations$Var2这个条件,筛选出两个列元素不相等的行,刚好去掉4个元素重复的行(A-A、B-B等),剩下的12行就是你需要的所有“无重复交易”项啦。
内容的提问来源于stack exchange,提问作者Lena
相关产品推荐
相关产品推荐

