2015-02-05 28 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"