我想排除数据框中包含全0的行。
我可以通过在%运算符中使用%来检查行是否包含0。但需要知道如何迭代整个矩阵。然后打印除其他行之外的新矩阵。
我怎样才能做到这一点?
答案 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) )
根据矩阵的大小和变量的命名约定,这可能很乏味,在这种情况下,我会直接进行应用函数。