首页 > 解决方案 > 如何在给定条件下获得一组 R 中的所有组合?

问题描述

我有一套:

lynx <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,6,7,8,9)

我想返回一组所有组合,其中允许从上述集合中重复,例如:

1 1 1 1 1
1 2 2 8 9

我使用了库 gtools 中的组合功能,但没有帮助

我试过了:

combination(n = 9, r = 5, v =  lynx, repeats.allowed=TRUE)

返回

        [,1] [,2] [,3] [,4] [,5]
    [1,]    1    1    1    1    1
    [2,]    1    1    1    1    2
    [3,]    1    1    1    1    3
    [4,]    1    1    1    1    4

但问题是它也会返回,

  [152,]    1    1    2    8    8

这是我不想要的,因为集合中没有两个 8。

标签: r

解决方案


谢谢@ekoam

lynx <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,6,7,8,9)

comb <- combinations(freq = table(lynx), k = 5, x = unique(lynx))

comb

图书馆:安排


推荐阅读