阅读您的评论看起来您可以使用matrix 生成想要的数字,例如:
n <- 2
matrix(1:n, n+1, n)[1:n,]
# [,1] [,2]
#[1,] 1 2
#[2,] 2 1
n <- 3
matrix(1:n, n+1, n)[1:n,]
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 2 3 1
#[3,] 3 1 2
n <- 4
matrix(1:n, n+1, n)[1:n,]
# [,1] [,2] [,3] [,4]
#[1,] 1 2 3 4
#[2,] 2 3 4 1
#[3,] 3 4 1 2
#[4,] 4 1 2 3
n <- 5
matrix(1:n, n+1, n)[1:n,]
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 2 3 4 5
#[2,] 2 3 4 5 1
#[3,] 3 4 5 1 2
#[4,] 4 5 1 2 3
#[5,] 5 1 2 3 4
我使用expand.grid 在base 中生成all 排列的第一个答案是:
x <- 1:3
do.call(expand.grid, lapply(x, \(i) x)) ->.
.[apply(., 1, anyDuplicated) == 0,]
# Var1 Var2 Var3
#6 3 2 1
#8 2 3 1
#12 3 1 2
#16 1 3 2
#20 2 1 3
#22 1 2 3