использовать select в суммах строк

#r #select #dplyr #rowsum

#r #выберите #dplyr #сумма строк

Вопрос:

 dataframe %>%
  select(thumb_p1_frac_1, thumb_p1_frac_2, thumb_p1_frac_3, thumb_p1_frac_4, thumb_p1_frac_5) %>%
  mutate(P1 = rowSums(., na.rm = TRUE)) 
 

выше работает, но я хочу удалить канал select и реализовать select select в mutate, например

 dataframe %>%
  mutate(P1 = rowSums(., select(thumb_p1_frac_1, thumb_p1_frac_2, thumb_p1_frac_3, thumb_p1_frac_4, thumb_p1_frac_5), na.rm = TRUE))  
 

в нем говорится:

нет применимого метода для ‘select_’, применяемого к объекту класса «c (‘double’, ‘numeric’)»

Ответ №1:

Как указано в вашей ошибке, вы выбрали неправильный ввод для select() функции. Причина этого в том, что select() требуется data.frame , но вы предоставляете только отдельные столбцы! Итак, решение вашей проблемы состоит в том, чтобы дать select() команде . , которая представляет data.frame то, что вы передаете через %>% .

Следовательно, правильный код

 dataframe %>%
  mutate(P1 = rowSums(select(., thumb_p1_frac_1, thumb_p1_frac_2, 
                              thumb_p1_frac_3, thumb_p1_frac_4, thumb_p1_frac_5), 
                na.rm = TRUE))
 

Обратите внимание, что я вытащил . изнутри rowSums() и вместо этого использовал его select() .