给出一个字符列表,例如:
L <- list("a", "b", "c", "d")
请注意,L
的长度不固定。
如何获得相邻的组合对,例如:
[,1] [,2]
[1,] "a" "b"
[2,] "b" "c"
[3,] "c" "d"
实际上,我这样做是为了获得有针对性的矩阵以进行进一步的网络分析。你知道,在一个特定的计算机媒介沟通中,人们一个接一个地讨论,有一个序列,新来者只回复最新的帖子。
答案 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])