作者eco100 ( )
看板R_Language
标题[问题] 排列组合的问题?
时间Tue Mar 14 01:08:42 2017
我问题是这样的
设有一个样本空间 {A, B, C}
若我想要列出 可重覆抽取,抽出二个样本的所有可能组合
有哪个fuction可以用吗?
意思是 我要得到 {AA, AB, AC, BA, BB, BC, CA, CB, CC} 9种组合
如果是抽三个的话 就会有 3^3=27种组合
我知道combn 但这个是C3取2? 不是我想要的结果
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.137.17.184
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1489424924.A.8B4.html
1F:→ celestialgod: expand.grid 03/14 01:39
2F:→ celestialgod: expand.grid(LETTERS[1:3],LETTERS[1:3]) 03/14 01:39
3F:→ eco100: 感谢! 03/14 09:21
4F:→ eco100: 但这样会有另一个问题,如果我要把样本数当作参数 03/14 09:29
5F:→ eco100: 要怎麽写进这个函数里呢? 意思是输入2 就是取2个 03/14 09:29
6F:→ eco100: 输入3 就是取3个 ? 03/14 09:29
7F:推 cywhale: f1 <- function(...) expand.grid(...);f1(x,x);f1(x,x,x 03/14 10:11
8F:→ cywhale: 好像多此一举expand.grid就好XD data.table::CJ也可以做 03/14 10:13
9F:→ andrew43: combn不只可以取2,不过它的结果是排列而不是组合 03/14 11:56
10F:→ andrew43: 更正,它的结果组合但不会重覆抽出。 03/14 12:03
11F:→ eco100: 是啊 所以combn结果不是我所要的 才来这边问看看 03/14 15:06
12F:推 Wush978: itertools::product 细节请参考上面itertools的介绍 03/14 19:26