0

文字列のリストがあるとしましょう:

list <- c("john", "carl", "suzanne")

それらは同じリストに表示されるため、ソーシャル ネットワーク上ではそれらが接続されていると想定しています。このグループをグラフに変換できるようにするには、エッジリストにする必要があります。

from to
john carl
carl suzanne
suzanne john

ただし、グループには 1 個から無限個の文字列を含めることができます。このような文字列のリストをエッジリストに変換する関数を作成するにはどうすればよいですか?

自発的に、各文字列を汎用オブジェクト (たとえば、namename2、およびname3) に割り当ててから、次のように行列を作成できるようです。

name1 = "john"
name2 = "carl"
name3 = "suzanne"
matrix(data = c(name1, name2, name2, name3, name1, name3), byrow=TRUE,
ncol=2)

     [,1]   [,2]     
[1,] "john" "carl"   
[2,] "carl" "suzanne"
[3,] "john" "suzanne"

ただし、このソリューションはあまりうまく拡張できません。スケーラブルなソリューションを作成するにはどうすればよいですか?

4

1 に答える 1

1

を探しているようですcombn

t(combn(list, 2))
##      [,1]   [,2]     
## [1,] "john" "carl"   
## [2,] "john" "suzanne"
## [3,] "carl" "suzanne"
于 2015-02-05T16:40:41.150 に答える