删除r中矩阵中的每第2列和第5列
我正在做一个习题集,要求我从一个非常大的矩阵中删除每2列和每5列删除r中矩阵中的每第2列和第5列,r,R,我正在做一个习题集,要求我从一个非常大的矩阵中删除每2列和每5列 mA = matrix(rnorm(10000), nrow = 100, ncol = 100) 我可以很容易地想出其中一种方法,但我很难想出如何同时做到这两种方法。有人有什么想法吗?使用向量回收你可以做到- result <- mA[, c(TRUE, FALSE, TRUE, TRUE, FALSE)] result使用向量循环可以- result <- mA[, c(TRUE, FALSE, TRUE, T
mA = matrix(rnorm(10000), nrow = 100, ncol = 100)
我可以很容易地想出其中一种方法,但我很难想出如何同时做到这两种方法。有人有什么想法吗?使用向量回收你可以做到-
result <- mA[, c(TRUE, FALSE, TRUE, TRUE, FALSE)]
result使用向量循环可以-
result <- mA[, c(TRUE, FALSE, TRUE, TRUE, FALSE)]
resultmA[,!(seq(ncol(mA))%%2==0 | seq(ncol(mA))%%5==0)]
mA[,!(seq(ncol(mA))%%2==0 | seq(ncol(mA))%%5==0)]
我们也可以这样做
result <- mA[, -unique(unlist(lapply(c(2, 5), function(i) seq(1, ncol(mA), by = i))))]
结果我们也可以
result <- mA[, -unique(unlist(lapply(c(2, 5), function(i) seq(1, ncol(mA), by = i))))]
result这不会删除第4列(每删除第2列一次)。修改似乎有效(出于某种原因,它必须这么长,只是将数字4设为FALSE不起作用):mB=mA[,c(真,假,真,假,假,假,真,假)]这不会删除第4列(每第二列被删除一次)修改似乎是有效的(出于某种原因,它必须这么长,仅仅把数字4放在FALSE不起作用):mB=mA[,c(真,假,真,假,假,真,假,假)]