作者celestialgod (天)
看板R_Language
标题Re: [问题] 排列组合的问题?
时间Tue Mar 14 21:04:25 2017
※ 引述《eco100 ( )》之铭言:
: 我问题是这样的
: 设有一个样本空间 {A, B, C}
: 若我想要列出 可重覆抽取,抽出二个样本的所有可能组合
: 有哪个fuction可以用吗?
: 意思是 我要得到 {AA, AB, AC, BA, BB, BC, CA, CB, CC} 9种组合
: 如果是抽三个的话 就会有 3^3=27种组合
: 我知道combn 但这个是C3取2? 不是我想要的结果
: 谢谢
用do.call + expand.grid就可以了
allCombn <- function(x, k){
do.call(expand.grid, replicate(k, x, simplify = FALSE))
}
allCombn(LETTERS[1L:3L], 2)
# Var1 Var2
# 1 A A
# 2 B A
# 3 C A
# 4 A B
# 5 B B
# 6 C B
# 7 A C
# 8 B C
# 9 C C
allCombn(LETTERS[1L:4L], 3)
# Var1 Var2 Var3
# 1 A A A
# 2 B A A
# 3 C A A
....
--
R资料整理套件系列文:
magrittr #1LhSWhpH (R_Language) https://goo.gl/72l1m9
data.table #1LhW7Tvj (R_Language) https://goo.gl/PZa6Ue
dplyr(上.下) #1LhpJCfB,#1Lhw8b-s (R_Language) https://goo.gl/I5xX9b
tidyr #1Liqls1R (R_Language) https://goo.gl/i7yzAz
pipeR #1NXESRm5 (R_Language) https://goo.gl/zRUISx
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.233.49.87
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1489496669.A.F4E.html
1F:推 memphis: 好像 expand.grid(rep(list(x), n)) 就可以 03/14 21:23
类似逻辑XD
※ 编辑: celestialgod (36.233.49.87), 03/14/2017 21:43:32