Numericの列が10列あります。他の列は文字列です。
1行1IDとなっています。
Numericの列すべてを合計して、現在の10列に加えて、合計の列を作ることは可能なのでしょうか?
列名を+で繋げていくことは、作業でエラーが発生しそうで避けたいです。
numericを指定したりできないでしょうか?
Exploratoryで好きな機能はブランチとパラメータです。
ブランチ大好きな私としては、そこでブランチ切って、
- ワイド型からロング型へ(Gather)
↓ - 集計
でIDごとに値を集計し、
もとのデータフレームにIDでJoinしちゃいますかねぇ。
※質問の主旨としては、numeric型のカラムを一括で処理できないか、ということだと思うので、
若干力技的な感じがしますが
なるほど!
分からないスクリプトを探して書くよりも、できそうです。
ありがとうございます。
あっ、というか、ワイド型からロング型にするときに、列名選択のところで、
「すべての数値列」を選択すれば、一個一個列を選択しなくても良くなるので、
概ねご要望に沿うのではないでしょうか。
その方法もありますね。やってみます!
なんどもすみません。
コード一発のやり方も調べてみました。
apply(.[sapply(.,is.numeric)],1,sum)
でいけますね!
# apply系はもっと勉強が必要だ・・・・
Takahashiさん、Yatsuuさん
計算を作成で下記のコードを書くことで、数値列の全ての列の合計値を求めて新しく列を作成できます。
sum(across(where(is.numeric)))
「いいね!」 1
白戸さん
ありがとうございます。できました。
自分自身でacross, where関数とか、様々な関数の組合せというところに、なかなか行き着かないので、応用が課題です・・。
自分自身のメモも兼ねて参考情報:
Exploratory Hour #106 - 複数の数値列の平均値を行ごとに求めたい
- ”カスタムRコマンドで”rowwise()
- mutateで計算したい関数とc_across, 列指定
- ungroupでrowwise解除。
列指定部分のバリエーションも動画で説明あり。
「いいね!」 1