消去行変数は0に等しくなく、それはNAである場合、またはときに、2つの列がRでNAに等しい場合

カルボ:

私はこのようなものに見えるDFデータセットを持っています

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

私はこれを取得します:

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

基本的に私は、行を取り除きたいfreq= 0または両方の行relfreqNAに等しいです。

私は試した

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

FREQ = 0をフィルタリングするが、それは私にいくつかの問題を与えます

同様に

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

排除すべての行freq= NA

私はこの問題を解決する方法上の任意の提案?

arg0naut91:

試してみてください。

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

出力:

  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

またはIN dplyr

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

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=377789&siteId=1