我们说我有一个字符串列表:
list <- c("john", "carl", "suzanne")
因为它们出现在同一个列表中,所以我做了一个社交网络假设他们是连接的。为了能够将此组转换为图表,我需要将其转换为边缘列表:
from to
john carl
carl suzanne
suzanne john
但是,该组可能包含1到无穷大的字符串数。如何构造一个将这样的字符串列表转换为边缘列表的函数?
似乎我可以将每个字符串分配给一个通用对象(比如name
,name2
和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"
但是,这种解决方案并不能很好地扩展。如何制作可扩展的解决方案?
答案 0 :(得分:1)
您似乎在寻找combn
。
t(combn(list, 2))
## [,1] [,2]
## [1,] "john" "carl"
## [2,] "john" "suzanne"
## [3,] "carl" "suzanne"