【问题标题】:Build rowSums in dplyr based on columns containing pattern in their names [duplicate]根据名称中包含模式的列在 dplyr 中构建 rowSums [重复]
【发布时间】:2019-06-14 15:19:43
【问题描述】:

我的数据框看起来像这样

USER OBSERVATION COUNT.1 COUNT.2 COUNT.3
A    1           0       1       1
A    2           1       1       2
A    3           3       0       0

使用 dplyr,我想构建一个列,对每一行的计数变量的值求和,并根据它们的名称选择计数变量。

USER OBSERVATION COUNT.1 COUNT.2 COUNT.3 SUM
A    1           0       1       1       2
A    2           1       1       2       4
A    3           3       0       0       3

我该怎么做?

【问题讨论】:

  • rowSums(df[grep("^COUNT", names(df))])
  • 另一个想法,as.vector(rowsum(t(df[-c(1,2)]), group = gsub('\\w+', '', names(df[-c(1,2)]))))

标签: r dplyr


【解决方案1】:

当您要求dplyr 解决方案时,您可以这样做:

library(dplyr)

df %>% 
  mutate(SUM = rowSums(select(., starts_with("COUNT"))))

  USER OBSERVATION COUNT.1 COUNT.2 COUNT.3 SUM
1    A           1       0       1       1   2
2    A           2       1       1       2   4
3    A           3       3       0       0   3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2020-08-21
    • 2022-10-15
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多