2015-02-05 55 views
0

比方說,我有一個字符串列表,泛型方法:的列表轉換爲EdgeList都

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

因爲他們出現在同一個列表,我在做它們連接社交網絡的假設。爲了能夠將該組轉換爲圖形,我需要把它做一個EdgeList都:

from to 
john carl 
carl suzanne 
suzanne john 

組,但是,可以包含1到字符串的無窮數。我如何構建一個將這樣的字符串列表轉換爲邊界列表的函數?

自發看來,我可以將每個串分配到一個通用對象(比如,namename2name3),然後只需創建一個矩陣如下:

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" 

但是,這個方案沒有按」噸標度非常好。我怎樣才能制定可擴展的解決方案?

回答

1

您好像在尋找combn

t(combn(list, 2)) 
##  [,1] [,2]  
## [1,] "john" "carl" 
## [2,] "john" "suzanne" 
## [3,] "carl" "suzanne"