Например, у меня есть фрейм данных, где я хочу получить сумму всех столбцов, начинающихся с «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
Один вариант, предложенный here и here, требует ввода всего нового столбца выбора в данные и использования функции rollise (например, rowSums).
Нечто подобное, полученное из вашего ответа, также работает. Спасибо: 'test%>% mutate (total = rowSums (. [Start_with (" Q3 ", vars = names (.))], Na.rm = TRUE))' –
И в этом случае я думаю об общих показателях и некоторые подшкалы (хотя я не уверен, что буду использовать). Я могу добавить '[1: 3]' к выбору для подмножества вещей легко. Кажется, это довольно простой способ сделать это, но если есть лучший способ, мне было бы интересно учиться. –