R: データフレームで値が全て 0 の行または列を探す
UB3/informatics/r/dataframe_allzero
このページの最終更新日: 2024/09/30広告
データが全て 0 の列を探す
まず、R のデータフレームで値が全て 0 の列を探す方法。
組み込みデータセット trees を使って例を示す。31 本の木について、胴回り Girth、高さ Height、容積 Volume を調べたデータで、以下のようにデータは全て数値である。
これに、mutate() 関数 を使って対象とする列 Zero を追加する。
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
- 【R】dplyrを使って複数の列の合計したカラムを追加する方法. Link: Last access 2024/03/11.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。