排除包含全0的行

时间:2013-05-30 17:17:08

标签: r matrix

我想排除数据框中包含全0的行。

我可以通过在%运算符中使用%来检查行是否包含0。但需要知道如何迭代整个矩阵。然后打印除其他行之外的新矩阵。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:4)

使用Senor O的样本数据(DF <- data.frame(A=rep(c(1,0),5), B=0)),尝试:

DF[!rowSums(DF == 0) == ncol(DF), ]

答案 1 :(得分:1)

这应该有效:

AllZeros = apply(DF, 1, function(X) all(X==0))
DF2 = DF[!AllZeros,]

尝试使用:

DF <- data.frame(A=rep(c(1,0),5), B=0)

作为样本数据。

答案 2 :(得分:1)

有很多方法可以做到这一点,因为到目前为止已经回答的人会告诉你。

我将再提供一个创建此示例数据集的示例。

    DF <- data.frame(A=rep(c(1,0),5), B=0)

subset命令效果很好。

    newDF <- subset(DF, !(A == 0 & B == 0) )

根据矩阵的大小和变量的命名约定,这可能很乏味,在这种情况下,我会直接进行应用函数。