Это то, что вы хотите
reprex[sum(reprex[,1:5])!=0,]
возвращает набор данных, соответствующий вашим критериям. Это относится к массивам или фреймам данных. Однако обратите внимание, что оригинал НЕ ИЗМЕНЕН и не должен.
В будущем рассмотрите возможность включения воспроизводимого примера в качестве примера в приведенном ниже коде. Это не должно быть сложным, но я думаю, что вы найдете, что акт заставит вас прояснить ваше мышление. Это для меня!
# emily example
# sample column as a 50% chance of being zero and 50 percent chance of random
set.seed(152)
sample_column<-function(col_length) {
ifelse(runif(col_length)<0.5,0,runif(col_length))
}
# produce some columns of random numbers. Spike it with
# zeroes to make the filter actually catch some.
make_reprex<-function(nrows,ncols) {
id=1:nrows
colnames=paste0('x',1:ncols)
data=matrix(nrow=nrows,ncol=ncols)
rownames(data)=id
colnames(data)=colnames
for (j in 1:ncols) {
data[,j]=sample_column(nrows)
}
return(data)
}
reprex=make_reprex(510,15)
# desired expression
reprex[sum(reprex[,1:5]!=0),]
Если вы хотите разместить данные как на месте, вам нужно сделать другое назначение.
reprex=reprex[sum(reprex[,1:5]!=0),]
Я советую против такой замены на месте. В некоторых случаях это необходимо, но редко так часто, как вы думаете.
причина?
Если вы избегаете деструктивного поднабора и что-то идет не так, вы можете легко вернуться к фрейму данных, как вы его изначально загрузили.