たとえば、「Q3」で始まるすべての列の合計を取得するデータフレームがありますが、それぞれを入力することができますが、このようなことを行うことができれば嬉しいです:突然変異で `dplyr`選択ヘルパー関数を使用する方法はありますか?
#Example data
test <- structure(list(UserID = c("53017366", "53017366"), Q3_1 = c(3L,
3L), Q3_2 = c(2L, 2L), Q3_3 = c(3L, 3L), Q3_4 = c(NA, 5L)), class = "data.frame", row.names = c(NA, -2L), .Names = c("UserID", "Q3_1", "Q3_2", "Q3_3", "Q3_4"))
#what I'd like to see, but doesn't work
test %>% mutate(total = sum(starts_with("Q3"), na.rm = TRUE))
#What I'd like to end up with:
UserID Q3_1 Q3_2 Q3_3 Q3_4 total
1 53017366 3 2 3 NA 8
2 53017366 3 2 3 5 13
1つのオプションは、hereとhereの場合、データに新しい選択列全体を置き、rowwise関数(rowSumsなど)を使用する必要があります。
あなたの答えから派生した、これと同じようなものも動作します。ありがとうございます: 'test%>%mutate(total = rowSums(.start_with(" Q3 "、vars = names(。))]、na.rm = TRUE))' –
そしてこの場合私は総合的な得点といくつかのサブセールス(私は何を使用するかわかりませんが)。私は '[1:3]'を選択項目に追加して、簡単に部分集合にすることができます。それはかなり簡単な方法ですが、もっと良い方法があれば、私は学習に興味があります。 –