如何使用R获得相邻的组合对?

时间:2011-08-25 15:31:24

标签: r combinations

给出一个字符列表,例如:

L <- list("a", "b", "c", "d")

请注意,L的长度不固定。

如何获得相邻的组合对,例如:

     [,1] [,2]
[1,]  "a"  "b" 
[2,]  "b"  "c" 
[3,]  "c"  "d" 

实际上,我这样做是为了获得有针对性的矩阵以进行进一步的网络分析。你知道,在一个特定的计算机媒介沟通中,人们一个接一个地讨论,有一个序列,新来者只回复最新的帖子。

4 个答案:

答案 0 :(得分:6)

使用embed

> L <- letters[1:4]
> embed(L, 2)[, 2:1]
     [,1] [,2]
[1,] "a"  "b" 
[2,] "b"  "c" 
[3,] "c"  "d" 

答案 1 :(得分:5)

Andrie对嵌入的使用肯定是优雅的,可能更有效率。这是一个稍微笨拙的方法:

> L<-c("a", "b", "c", "d")
> L
[1] "a" "b" "c" "d"
> matrix(c(L[-length(L)], L[-1]), ncol=2)
     [,1] [,2]
[1,] "a"  "b" 
[2,] "b"  "c" 
[3,] "c"  "d" 

答案 2 :(得分:1)

也许是combn

L<-c("a", "b", "c", "d")

combn(L, 2)

    [,1] [,2] [,3] [,4] [,5] [,6]
[1,] "a"  "a"  "a"  "b"  "b"  "c" 
[2,] "b"  "c"  "d"  "c"  "d"  "d"

您可以根据需要从那里进行分组。

答案 3 :(得分:0)

您可以使用cbind完成此操作:

L <- letters[1:4]
cbind(head(L, -1), L[-1])