R:从载体形成所有连续组合

use*_*786 3 combinations r combinatorics

假设我有这样的矢量:

a<-c(1,2,3,4)
Run Code Online (Sandbox Code Playgroud)

如何从中获取所有连续组合:

1,2,3,4
2,3,4,1
3,4,1,2
4,1,2,3
Run Code Online (Sandbox Code Playgroud)

但没有别的?不幸的是,我的矢量要大得多,所以手工操作会耗费太多时间.谢谢你的帮助.

akr*_*run 5

我们可以用 matrix

 matrix(a, ncol=4, nrow=5)[1:4,]
 #       [,1] [,2] [,3] [,4]
 #[1,]    1    2    3    4
 #[2,]    2    3    4    1
 #[3,]    3    4    1    2
 #[4,]    4    1    2    3
Run Code Online (Sandbox Code Playgroud)

我们可以将上述概括为

 n <- length(a)
 matrix(a, ncol=n, nrow=n+1)[seq(n),]
Run Code Online (Sandbox Code Playgroud)