小编Dun*_*son的帖子

R中具有重复项的数据集的排列

我正在使用R来生成在其中复制的向量的排列.

在生成排列时,我使用数字来表示组.这是我能为小家伙做的事情:

unlist(unique(permn(c(1,1,2,2,3,3,4,4), paste0, collapse = "")))
Run Code Online (Sandbox Code Playgroud)

返回2520个排列的矢量(8!/ 2 ^ 4)

问题是我正在尝试将其向上滚动到11,以便我可以获得16选11的每个独特排列.为了得到我所做的每一个组合:

combs = unique(combn(c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4),11, paste0, collapse = ""))
Run Code Online (Sandbox Code Playgroud)

然后迭代它们并将它们粘贴在一起以获得所有独特的16种选择11种排列.

听起来像一个巨大的数字?

事实并非如此.理论上它是525,525行(16!/ 5!4!4!4!4!)问题是这种方法必须以3900万(11!)的组计算所有174356582400行(大约为1740亿行)并执行独特的操作.

在找到排列时,是否有一种方法可以在重复中使用快捷方式和因子?

看看其他方法,我发现这可行:

unique(permutations(16,11, c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4), set=FALSE))
Run Code Online (Sandbox Code Playgroud)

除了它花了太多时间做这件事,而且我正在做同样的事情,我正在做的是找到所有坏的,然后将它们排除在外

r permutation

6
推荐指数
1
解决办法
267
查看次数

标签 统计

permutation ×1

r ×1