在 rowsums 中使用 select

问题描述

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)) 

以上工作,但我想删除选择管道并在变异中实现选择选择,如

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

它说:

没有适用于 'select_' 的方法应用于类 "c('double','numeric')" 的对象

解决方法

正如您的错误所说,您选择了错误的 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() 中使用了它。