gpt4 book ai didi

r - 在 R 中生成列表的所有不同排列

转载 作者:行者123 更新时间:2023-12-03 06:00:44 27 4
gpt4 key购买 nike

我正在尝试创建列表的排列列表,例如,perms(list("a", "b", "c")) 返回

list(list("a", "b", "c"), list("a", "c", "b"), list("b", "a", "c"),
list("b", "c", "a"), list("c", "a", "b"), list("c", "b", "a"))

我不知道如何继续,任何帮助将不胜感激。

最佳答案

不久前,我不得不在基础 R 中执行此操作,而不加载任何包。

permutations <- function(n){
if(n==1){
return(matrix(1))
} else {
sp <- permutations(n-1)
p <- nrow(sp)
A <- matrix(nrow=n*p,ncol=n)
for(i in 1:n){
A[(i-1)*p+1:p,] <- cbind(i,sp+(sp>=i))
}
return(A)
}
}

用法:

> matrix(letters[permutations(3)],ncol=3)
[,1] [,2] [,3]
[1,] "a" "b" "c"
[2,] "a" "c" "b"
[3,] "b" "a" "c"
[4,] "b" "c" "a"
[5,] "c" "a" "b"
[6,] "c" "b" "a"

关于r - 在 R 中生成列表的所有不同排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11095992/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com