R 删除数字为零的行

R 删除数字为零的行,r,R,我有一个0和1值的数据帧,如下所示: stock1,stock2,stock3,stock4 1,0,0,0 1,0,1,0 0,0,1,0 1,0,1,0 for (i in 1:ncol(df)){ col_number <- paste("df$stock",i) col_number <- NULL # I could find a way to have the df column and not the variable } 我想删除所有行都具

我有一个0和1值的数据帧,如下所示:

stock1,stock2,stock3,stock4
1,0,0,0
1,0,1,0
0,0,1,0
1,0,1,0
for (i in 1:ncol(df)){
      col_number <- paste("df$stock",i)
      col_number <- NULL # I could find a way to have the df column and not the variable
}
我想删除所有行都具有0值的行,在上一个示例中,它们是stoc2和stock4列。为了使它,我计算总和,并有一个需要的行

stock1,stock2,stock3,stock4
1,0,0,0
1,0,1,0
0,0,1,0
1,0,1,0
3,0,3,0
使用类似这样的方法:

stock1,stock2,stock3,stock4
1,0,0,0
1,0,1,0
0,0,1,0
1,0,1,0
for (i in 1:ncol(df)){
      col_number <- paste("df$stock",i)
      col_number <- NULL # I could find a way to have the df column and not the variable
}
for(1中的i:ncol(df)){

列数问题的描述和示例似乎不一致。如果我们需要删除只有0的行,那么我们可以使用
rowSums

df1[rowSums(df1 != 0)>0,]

如果需要删除所有值均为0的列,请执行以下操作

Filter(sum, df1)
或者使其明确,并处理边缘案例

Filter(function(x) any(x!=0), df1)
#   stock1 stock3
#1      1      0
#2      1      1
#3      0      1
#4      1      1