为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

眼眸繁星 2019-09-24 16:13:15
我正在尝试创建列表的排列列表,例如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"))我不确定如何继续,我们将不胜感激。
查看完整描述

3 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

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"

注意,如果元素很大,则计算量很大。


查看完整回答
反对 回复 2019-09-24
?
aluckdog

TA贡献1847条经验 获得超7个赞

您可以尝试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" 


查看完整回答
反对 回复 2019-09-24
  • 3 回答
  • 0 关注
  • 753 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信