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

我正在尝试创建列表的排列列表,例如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"))

我不确定如何继续,我们将不胜感激。


眼眸繁星
浏览 823回答 3
3回答

qq_笑_17

combinat::permn 将完成该工作:> library(combinat)> permn(letters[1:3])[[1]][1] "a" "b" "c"[[2]][1] "a" "c" "b"[[3]][1] "c" "a" "b"[[4]][1] "c" "b" "a"[[5]][1] "b" "c" "a"[[6]][1] "b" "a" "c"注意,如果元素很大,则计算量很大。

aluckdog

您可以尝试permutations()使用该gtools软件包,但与permn()from 不同combinat,它不会输出列表:> library(gtools)> permutations(3, 3, letters[1: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" 
打开App,查看更多内容
随时随地看视频慕课网APP