有没有办法在mutate中使用`dplyr` select helper函数?

时间:2017-02-03 01:52:00

标签: r dplyr

例如,我有一个数据框,我希望得到以“Q3”开头的所有列的总和,我可以输出每一个,但是能够做到这样的事情会很棒:

1

一个选项建议herehere要求在数据中添加一个全新的选择列并使用行方式功能(如rowSums)。

2 个答案:

答案 0 :(得分:4)

我们可以使用rowSums

test %>% 
     mutate(total = rowSums(.[grep("Q3", names(.))], na.rm =TRUE))
#    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 :(得分:2)

在这种情况下,您可以使用janitor::add_totals_col

library(janitor)
test %>%
  add_totals_col()
#>     UserID Q3_1 Q3_2 Q3_3 Q3_4 Total
#> 1 53017366    3    2    3   NA     8
#> 2 53017366    3    2    3    5    13

对于你需要在mutate中使用select助手的更深层次的问题,这个需求可以表明缺乏tidy data结构。在这种情况下,您在列标题中有值。如果使用变量quarter,请使用较长的整洁格式,您可以使用group_bysummarise优雅地执行此操作。