jnobuyukiのブログ

研究していて困ったことやその解決に関するメモ。同じように困ったあなたのために。twitter ID: @j_nobuyuki

R言語で複数の変数を集計

今回は、アンケート項目の集計などに用いるような複数項目の集計方法を紹介します。

rowSums関数の利用

各個人が次のようにアンケートに答えたとします。

参加者ID 質問1 質問2 質問3
A 1 1 0
B 0 1 0
C NA NA NA
D NA 1 0

1は「はい」、0は「いいえ」、NAは未回答とします。
では、それぞれの人が何回「はい」と答えたのかを集計してみたいと思います。こういうときにはrowSums関数が便利です。

dat <- data.frame(ID  = c("A","B","C","D"), Q1 = c(1,0,NA,NA), Q2 = c(1,1,NA,1), Q3 = c(0,0,NA,0))

print(dat)

#totalという変数を追加
dat$total <- rowSums(dat[,2:4])

print(dat)

NA(欠損値)に注意

rowSums関数は NAが一つでも含まれていると合計の結果にNAを戻します。アンケートで言えば、1項目でも未回答だった場合、すべての回答を無効にしてしまいます。これで良い場合もありますが、NAを計算から除外するには、rowSums関数の引数にna.rm = TRUEを加えましょう。

#totalという変数を追加
dat$total <- rowSums(dat[,2:4], na.rm = TRUE)

print(dat)