【发布时间】:2021-08-09 15:03:56
【问题描述】:
我有 uniq 元素的向量。我需要创建这个向量元素的所有唯一组合(2 个和 3 个)。我尝试使用expand.grid() 函数
genes <- c('A', 'B')
expand.grid(genes, genes)
但输出不包含 uniq 元素
Var1 Var2
1 A A #not uniq
2 B A
3 A B #not uniq because we already have B+A combination
4 B B #not uniq
所以我的示例中的结果必须只有 1 行 - B A 或 A B。 3 组合同样的问题
> genes = c('A', 'B', 'C')
> expand.grid(genes, genes, genes)
Var1 Var2 Var3
1 A A A #not uniq
2 B A A #not uniq
3 C A A #not uniq
4 A B A #not uniq
5 B B A #not uniq
6 C B A
7 A C A #not uniq
8 B C A #not uniq
9 C C A #not uniq
10 A A B #not uniq
11 B A B #not uniq
12 C A B #not uniq
13 A B B #not uniq
14 B B B #not uniq
15 C B B #not uniq
16 A C B #not uniq
17 B C B #not uniq
18 C C B #not uniq
19 A A C #not uniq
20 B A C #not uniq
21 C A C #not uniq
22 A B C #not uniq
23 B B C #not uniq
24 C B C #not uniq
25 A C C #not uniq
26 B C C #not uniq
27 C C C #not uniq
如何获得 2 和 3 的所有唯一组合?
更新 combn() 不起作用
genes = c('A', 'B', 'C')
combn(genes, 2)
[,1] [,2] [,3]
[1,] "A" "A" "B"
[2,] "B" "C" "C"
如果我有 genes = c('A', 'B', 'C') 想要获取具有三个对组合的数据框
Var1 Var2
1 A B
2 A C
3 B C
如果我搜索三元组,还有一个包含 1 个三元组组合的数据框:
Var1 Var2 Var3
1 A B C
类似的东西
uniq_pairs = some_function(genes, 2)
uniq_triplets = some_function(genes, 3)
【问题讨论】:
-
您可能正在寻找
combn,即combn(genes, 2)
标签: r combinations