假设我有以下矩阵;
structure(c(1, -2, 1, 2, -2, 1, 3, 2, 1,4,5,6), .Dim = c(3L, 4L), .Dimnames = list(NULL, c("a", "b", "c","d")))
我想删除所有具有负值的列,并返回一个仅包含&#34; c&#34;的矩阵。和&#34; d&#34;列。我尝试subset(a, a<0)
,但它出现以下错误:
Error in x[subset & !is.na(subset), vars, drop = drop] :
(subscript) logical subscript too long
答案 0 :(得分:4)
我们可以在逻辑矩阵上使用colSums
,否定它并使用它来对列进行子集
m1[,!colSums(m1 <0)]
# c d
#[1,] 3 4
#[2,] 2 5
#[3,] 1 6