Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何仅获取组合子集-带限制的组合_R_Combinations - Fatal编程技术网

R 如何仅获取组合子集-带限制的组合

R 如何仅获取组合子集-带限制的组合,r,combinations,R,Combinations,我将用两种不同的方式解释我的问题,请选择一种你更了解的方式。如果有不清楚的地方,请在评论中告诉我 版本1 为了使问题更清楚,我将从另一个角度解释同样的问题: 我有一个5列3行的二进制矩阵: [,1] [,2] [,3] [,4] [,5] [1,] 1 1 1 0 0 [2,] 0 0 1 1 0 [3,] 0 0 0 1 1 我对这个矩阵的几乎所有版本都感兴趣,只对行进行排列

我将用两种不同的方式解释我的问题,请选择一种你更了解的方式。如果有不清楚的地方,请在评论中告诉我

版本1

为了使问题更清楚,我将从另一个角度解释同样的问题:

我有一个5列3行的二进制矩阵:

        [,1] [,2] [,3] [,4] [,5]
  [1,]    1    1    1    0    0
  [2,]    0    0    1    1    0
  [3,]    0    0    0    1    1
我对这个矩阵的几乎所有版本都感兴趣,只对行进行排列。这里有一个限制:我只想要每个列至少有一个1的排列。如上所述,我已经计算出有370种可能的排列方式,每列中保持最小1。我这里的问题是,是否有可能在不经过所有1000种可能的排列的情况下获得这些矩阵

版本2

我想计算一些概率,因为我有3个元素表,每10列需要合并

Table 1: combn(5,3) -> 10 combinations
 > combn(5,3)
       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
    [1,]    1    1    1    1    1    1    2    2    2     3
    [2,]    2    2    2    3    3    4    3    3    4     4
    [3,]    3    4    5    4    5    5    4    5    5     5

Table 2 & 3: combn(5,2) -> 10 combinations
 > combn(5,2)
       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
  [1,]    1    1    1    1    2    2    2    3    3     4
  [2,]    2    3    4    5    3    4    5    4    5     5
现在我需要所有创建的组的组合,但只需要那些包含所有可能元素的组合,至少一次1,2,3,4,5。有1000种可能的组合,我只对370种感兴趣


我能想到的唯一解决方案是使用expand.grid运行所有可能的组合,并检查是否存在所有元素。我希望有一个更简单的解决办法。同时,这个例子不会给计算带来太多麻烦,一旦数字增加,如果我能直接获得我感兴趣的组合,我就可以节省大量的计算时间。

这个例子有28个视图,没有一句话表明我不是唯一一个理解你有困难的人。你能再详细一点吗?也许可以展示一下你的结果会是什么样子?当你说“所有已创建组的组合”时,你指的是combn输出中的列吗?是的,你理解正确,我现在会尽量让它更清楚,谢谢