R: データフレームで値が全て 0 の行または列を探す

UB3/informatics/r/dataframe_allzero

このページの最終更新日: 2024/04/07

  1. データが全て 0 の列を探す

広告

データが全て 0 の列を探す

まず、R のデータフレームで値が全て 0 の列を探す方法。

組み込みデータセット trees を使って例を示す。31 本の木について、胴回り Girth、高さ Height、容積 Volume を調べたデータで、以下のようにデータは全て数値である。

Rの組み込みデータセット trees

これに、mutate() 関数 を使って対象とする列 Zero を追加する。

Rの組み込みデータセット trees

tidyverse に含まれる dplyr パッケージには、行ごとおよび列ごとに合計してくれる rowSums()、colSums() という便利な関数がある。このデータフレーム df に colSums() を適用する。

colSums() の出力は、named num というベクターになる。これはちょっと扱いにくいので、他の形に変換する。

colSums() の結果をデータフレームとして保存し、列名が . になってしまうのでこれを value など適当な名前に rename する。

さらに、filter() 関数で value == 0 となる行のみを選び、その行の名前を rownames で出力する。最終的なアウトプットは「全ての値が 0 である列の名前が全て含まれるベクター」になる。

ここは、これも tidyverse に含まれる enframe() を使ってもよい。この場合、列名は自動で name と value になる。

あとは、この allzero をそのまま select() 関数 に入れれば、全て 0 の列を除くことができる。


広告

References

  1. 【R】dplyrを使って複数の列の合計したカラムを追加する方法. Link: Last access 2024/03/11.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。