在R中如何删除包含负数的矩阵的所有列?

mer*_*114 1 r matrix dimensions identity-column

我想从M包含至少一个负数的矩阵中删除这些列.例如,如果

M = (1  0  0  1)
    (1 -1  0  2)
    (2  3  4 -3)
Run Code Online (Sandbox Code Playgroud)

我希望M成为

M = (1  0)
    (1  0)
    (2  4)
Run Code Online (Sandbox Code Playgroud)

如何输入 M <- removeNegativeColumns(M) 代码?

MKR*_*MKR 6

简单的方法可能是使用sum作为条件的列value < 0 (-ve).

    # Data
    M <- matrix(c(1,0,0,1,1, -1,  0,  2,2,  3,  4, -3), ncol = 4, byrow = T)

    M[, !colSums(M < 0 )]
#     [,1] [,2]
#[1,]    1    0
#[2,]    1    0
#[3,]    2    4
Run Code Online (Sandbox Code Playgroud)