filas de borrado cuando una variable es igual a 0, pero no cuando es NA, o cuando dos columnas son iguales a NA en R

carbo:

Tengo un conjunto de datos DF que tiene este aspecto

rel freq key
1.1 1.1 a       
1   1   b       
1   NA  c       
NA  NA  d       
NA  0   e       
NA  1   f

Quiero obtener esto:

rel freq key
1.1 1.1 a       
1   1   b       
1   NA  c               
NA  1   f

Básicamente quiero para deshacerse de las filas donde freq= 0 o las filas en las que tanto rely freqson iguales a NA.

Lo intenté

df <- df[df$freq!=0,] 

Para filtrar frec = 0 pero me da algunos problemas

similar

library(dplyr)
df <- filter(df, freq != 0)

elimina todas las filas con freq= NA

Cualquier sugerencia sobre cómo puedo solucionar esto?

arg0naut91:

Tratar:

subset(df, !(freq == 0 & !is.na(freq) | (is.na(freq) & is.na(rel))))

Salida:

  rel freq key
1 1.1  1.1   a
2 1.0  1.0   b
3 1.0   NA   c
6  NA  1.0   f

O en dplyr:

dplyr::filter(df, !(freq == 0 & !is.na(freq) | (is.na(freq) & is.na(rel))))

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=377792&siteId=1
Recomendado
Clasificación