[解決済み] dplyrで複数列の和を求める
2022-05-13 13:31:20
質問
私の質問は、データフレームの複数の列の値を合計し、この合計に対応する新しい列を作成することです。
dplyr
. 列のデータエントリはバイナリ(0,1)です。私は、行単位での
summarise_each
または
mutate_each
の機能
dplyr
. 以下はデータフレームの最小限の例です。
library(dplyr)
df=data.frame(
x1=c(1,0,0,NA,0,1,1,NA,0,1),
x2=c(1,1,NA,1,1,0,NA,NA,0,1),
x3=c(0,1,0,1,1,0,NA,NA,0,1),
x4=c(1,0,NA,1,0,0,NA,0,0,1),
x5=c(1,1,NA,1,1,1,NA,1,0,1))
> df
x1 x2 x3 x4 x5
1 1 1 0 1 1
2 0 1 1 0 1
3 0 NA 0 NA NA
4 NA 1 1 1 1
5 0 1 1 0 1
6 1 0 0 0 1
7 1 NA NA NA NA
8 NA NA NA 0 1
9 0 0 0 0 0
10 1 1 1 1 1
みたいなのが使えた。
df <- df %>% mutate(sumrow= x1 + x2 + x3 + x4 + x5)
というのがありますが、これだと各カラムの名前を書き出すことになります。私は50カラムほど持っています。 また、この処理を行うループの繰り返しでカラム名が変わってしまうので また、この操作を実装したいループの反復によってカラム名が変わるので、カラム名をつける必要がないようにしたいです。
どのようにすれば最も効率的にできるでしょうか? ご教示いただければ幸いです。
どのように解決するのですか?
dplyr >= 1.0.0を横断して使用しています。
を使って各行を合計する
rowSums
(
rowwise
はどのようなアグリゲーションに対しても機能しますが、より遅いです)
df %>%
replace(is.na(.), 0) %>%
mutate(sum = rowSums(across(where(is.numeric))))
各列の合計
df %>%
summarise(across(everything(), ~ sum(., is.na(.), 0)))
dplyr < 1.0.0
各行を合計する
df %>%
replace(is.na(.), 0) %>%
mutate(sum = rowSums(.[1:5]))
各カラムの合計を
スーパーシード
summarise_all
:
df %>%
replace(is.na(.), 0) %>%
summarise_all(funs(sum))
関連
-
Rの警告 "条件の長さが1より大きいので、最初の要素しか使えない "に対する解決策
-
[解決済み] Rでcは何をするのですか?重複] [重複
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] ggplotで凡例のタイトルを変更する方法
-
[解決済み] ベクトル中のある要素のインデックスを求めるR関数はありますか?
-
[解決済み】data.table vs dplyr:一方がうまくできない、またはうまくできないことを行うことができますか?
-
[解決済み】自作関数を書くときにRの省略機能を使うには?
-
[解決済み】Rスクリプトで警告をグローバルに抑制する方法
-
[解決済み] `dplyr`で新しいカラム/変数に動的な名前を使用する
-
[解決済み] データフレームのカラムのデータ型を決定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
R言語です。「接続を開くことができません」解決策
-
ggplot2 からグリッドと背景色を削除する。
-
Rでエラー:単項演算子への引数が無効
-
[解決済み] グループ化関数(tapply、by、aggregate)と*applyファミリ
-
[解決済み] 空のdata.frameを作成する
-
[解決済み] 非常に大きなテーブルをデータフレームとして高速に読み込む
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み] ggplot2 を使って 2 つの変数を同じグラフに線でプロットする
-
[解決済み】set.seed関数を使用する理由
-
[解決済み] dplyrを使用して、テーブルの各行に関数を適用しますか?