R语言如何从向量中移除指定子向量并生成组合矩阵的互补矩阵y
解决方法
你可以通过先生成位置组合的方式得到对应互补矩阵,示例代码如下:
library(gtools) wine <- c(1, 1, 1, 0, 0) # 先生成2个元素的位置索引组合,而非直接传入wine的值 pos_comb <- combinations(n = 5, r = 2, v = 1:5, set = FALSE, repeats.allowed = FALSE) # 生成目标矩阵x:提取每个组合对应位置的wine值 x <- t(apply(pos_comb, MARGIN = 1, FUN = function(idx) wine[idx])) # 生成互补矩阵y:提取每个组合剩余位置的wine值 y <- t(apply(pos_comb, MARGIN = 1, FUN = function(idx) wine[-idx]))
效果说明
你提到的移除b = c(1,0)子向量得到d = c(1,1,0)的需求,只需要筛选x中行等于c(1,0)对应的y行即可得到目标结果。
内容的提问来源于stack exchange,提问作者Δημήτριος Φούντας
相关产品推荐
相关产品推荐

