0

重複のあるリストすべての組み合わせを取得するにはどうすればよいですか。重複とは、それ自体を持つ要素を意味します。対称行列を構築しています。

names.list<-c("A","B","C")
as.data.frame(t(combn(names.list,2)))

結果は次のとおりです。

   V1  V2
1   A   B
2   A   C
3   B   C

私が欲しいとき:

   V1  V2
1   A   A
2   A   B
3   A   C
4   B   B
5   B   C
6   C   C

あるいは:

   V1  V2
1   A   A
2   A   B
3   A   C
4   B   A
5   B   B
6   B   C
7   C   A
8   C   B
9   C   C

しかし、私の行列は大きいので、より多くの組み合わせ=より多くの計算=より長い実行時間..

ありがとう。

4

1 に答える 1

1

expand.gridの代わりに探しているようですcombn

expand.grid(names.list, names.list)
#   Var1 Var2
# 1    A    A
# 2    B    A
# 3    C    A
# 4    A    B
# 5    B    B
# 6    C    B
# 7    A    C
# 8    B    C
# 9    C    C

アップデート

またcombinations、好みの出力が得られる「gtools」もあります。

library(gtools)
combinations(3, 2, names.list, repeats = TRUE)
#     [,1] [,2]
# [1,] "A"  "A" 
# [2,] "A"  "B" 
# [3,] "A"  "C" 
# [4,] "B"  "B" 
# [5,] "B"  "C" 
# [6,] "C"  "C" 
于 2014-02-14T02:27:20.417 に答える