-1

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

我可以使用 %in% 运算符检查一行是否包含 0。但需要知道如何迭代整个矩阵。然后打印不包括其他行的新矩阵。

我怎样才能做到这一点?

4

3 回答 3

4

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

DF[!rowSums(DF == 0) == ncol(DF), ]
于 2013-05-30T17:31:02.947 回答
1

这应该有效:

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

试试看:

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

作为样本数据。

于 2013-05-30T17:27:16.720 回答
1

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

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

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

subset命令运行良好。

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

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

于 2013-05-30T17:58:21.353 回答