【问题标题】:How may I rowSum over a subset of variables by name with expression like a:b [duplicate]我如何使用 a:b 这样的表达式按名称对变量子集进行 rowSum [重复]
【发布时间】:2020-07-19 13:04:18
【问题描述】:
dd <- data.frame(a=1:10,b=2:11,c=3:12)
dd %>% mutate( Total=rowSums(.[1:2]))
    a  b  c CCI
1   1  2  3   3
2   2  3  4   5
3   3  4  5   7
4   4  5  6   9
5   5  6  7  11
6   6  7  8  13
7   7  8  9  15
8   8  9 10  17
9   9 10 11  19
10 10 11 12  21

有没有办法选择像 a:b 这样的变量名?我有数百个变量,但位置可能会随着数据集的另一个版本而改变;所以安全的方法是按 a:b 之类的样式选择变量?

【问题讨论】:

    标签: r tidyverse across


    【解决方案1】:

    dplyr 1.0.0 中可以使用rowwisec_across

    dd %>%  rowwise %>% mutate(Total = sum(c_across(a:b))) %>% ungroup
           a     b     c Total
       <int> <int> <int> <int>
     1     1     2     3     3
     2     2     3     4     5
     3     3     4     5     7
     4     4     5     6     9
     5     5     6     7    11
     6     6     7     8    13
     7     7     8     9    15
     8     8     9    10    17
     9     9    10    11    19
    10    10    11    12    21
    

    【讨论】:

    • 如果您使用过rowwise(),添加%&gt;% ungroup() 是一个好习惯。否则,您的数据总是按行分组。
    • @Darren Tsai,你是对的,更新帖子
    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多