gpt4 book ai didi

r - 获取每个 combn(n,k) 组合的排除元素

转载 作者:行者123 更新时间:2023-12-02 07:53:11 25 4
gpt4 key购买 nike

假设我们生成了一个矩阵 A,其中每一列包含 k 组中的 n 元素的组合之一。因此,它的维度将为 k,choose(n,k)。使用命令 combn(n,k) 可以生成这样的矩阵。我想要得到的是另一个矩阵 B,维度为 (n-k),choose(n,k),其中每一列 B[,j] 将包含 A[,j] 中排除的 n-k 元素。

这是我使用获取表 B 的方式的示例。您认为这是一种安全的使用方法吗?还有别的办法吗?

n <- 5 ; k <- 3
(A <- combn(n,k))
(B <- combn(n,n-k)[,choose(n,k):1])

另一个例子

x<-c(0,1,0,2,0,1) ; k<- 4
(A <- combn(x,k))
(B <- combn(x,length(x)-k)[,choose(length(x),k):1])

那个previous question我的就是这个问题的一部分。
谢谢。

最佳答案

使用 Musa 的 idea

B <- apply(A,2,function(z) x[is.na(pmatch(x,z))])

关于第一个例子:

B <- apply(A,2,function(z) (1:n)[is.na(pmatch((1:n),z))])

关于r - 获取每个 combn(n,k) 组合的排除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2490860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com