大規模なデータセットの場合は、おそらくシンプルだが扱いにくい質問でしょう。以下のように等しい寸法の2つのデータフレーム(df1
、df2
)を考える:2つのデータフレームでのNAsの条件付き置換R
head(df1)
a b c
1 0.8569720 0.45839112 NA
2 0.7789126 0.36591578 NA
3 0.6901663 0.88095485 NA
4 0.7705756 0.54775807 NA
5 0.1743111 0.89087819 NA
6 0.5812786 0.04361905 NA
と
head(df2)
a b c
1 0.21210312 0.7670091 NA
2 0.19767464 0.3050934 1
3 0.08982958 0.4453491 2
4 0.75196925 0.6745908 3
5 0.73216793 0.6418483 4
6 0.73640209 0.7448011 5
どのようにしif(all(is.na(df1))
が、この場合c
には、df2
に移動し、すべての値を設定し、すべての列を見つけることができます一致列(c
)からNAs
に一致する。
所望の出力
head(df3)
a b c
1 0.21210312 0.7670091 NA
2 0.19767464 0.3050934 NA
3 0.08982958 0.4453491 NA
4 0.75196925 0.6745908 NA
5 0.73216793 0.6418483 NA
6 0.73640209 0.7448011 NA
私の実際のデータフレームは、以上の140000
の列を持っています。
次のようになります。 '(colSums(is.na(x))== nrow(x))'は、ここで実装されています:https://github.com/sjPlot/sjmisc/blob/master/R/is_empty.R#L94 – Daniel
だから、 'df2 [、empty_cols(df1)] < - NA'は動作するはずです(今はテストできず、携帯電話からのコメントです)。 – Daniel