Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 - Fatal编程技术网

R中的组合与置换 我有一个非常大的数据帧,但是为了这个问题,让我们考虑一下它的子集;

R中的组合与置换 我有一个非常大的数据帧,但是为了这个问题,让我们考虑一下它的子集;,r,R,i j k l m n o p q 1 1 1 1 1 1 3 4 4 1 1 1 1 1 1 4 3 4 1 1 1 1 1 1 4 4 3 1 1 1 1 1 2 2 4 4 1 1 1 1 1 2 3 3 4 1 1 1 1 1 2 3 4 3 在上述数据帧中,行中的值可以以特定数量的方式排列;例如,让我们考虑第一行,即(1,1,1,1,1,3,4,4)。我们将非常感谢任何能够在R中计算出这些方法的帮助 您可以使用以下公式计算每行的唯一排列数: apply(dat, 1, functio

i j k l m n o p q
1 1 1 1 1 1 3 4 4
1 1 1 1 1 1 4 3 4
1 1 1 1 1 1 4 4 3
1 1 1 1 1 2 2 4 4
1 1 1 1 1 2 3 3 4
1 1 1 1 1 2 3 4 3

在上述数据帧中,行中的值可以以特定数量的方式排列;例如,让我们考虑第一行,即(1,1,1,1,1,3,4,4)。我们将非常感谢任何能够在R中计算出这些方法的帮助

您可以使用以下公式计算每行的唯一排列数:

apply(dat, 1, function(x) factorial(length(x)) / prod(factorial(table(x))))
# [1]  252  252  252  756 1512 1512
如果一行长度n的所有元素都是唯一的,那么就有n!(n阶乘)置换。但是,如果每个j唯一元素的总拷贝数为k1,k2,…,kj,那么我们可以通过除以k1!*k2!*…*kj!。还有更多关于多项式系数的细节

如果两行具有相同的元素(可能顺序不同),那么它们的所有排列也将相同。我们可以通过检查重复的有序行来考虑这一点:

apply(dat, 1, function(x) factorial(length(x)) / prod(factorial(table(x)))) *
  !duplicated(t(apply(dat, 1, sort)))
# [1]  252    0    0  756 1512    0

您可以使用以下公式计算每行的唯一排列数:

apply(dat, 1, function(x) factorial(length(x)) / prod(factorial(table(x))))
# [1]  252  252  252  756 1512 1512
如果一行长度n的所有元素都是唯一的,那么就有n!(n阶乘)置换。但是,如果每个j唯一元素的总拷贝数为k1,k2,…,kj,那么我们可以通过除以k1!*k2!*…*kj!。还有更多关于多项式系数的细节

如果两行具有相同的元素(可能顺序不同),那么它们的所有排列也将相同。我们可以通过检查重复的有序行来考虑这一点:

apply(dat, 1, function(x) factorial(length(x)) / prod(factorial(table(x)))) *
  !duplicated(t(apply(dat, 1, sort)))
# [1]  252    0    0  756 1512    0