【问题标题】:Summarise data.table when "by" grouping variables stored as vector of strings [duplicate]当“按”分组变量存储为字符串向量时总结data.table [重复]
【发布时间】:2020-06-26 19:19:54
【问题描述】:

我正在尝试将数据表总结为函数的一部分。分组变量根据用户要求/数据而变化。分组变量作为字符串向量输入。如何将其用作分组变量?见下面的代码

library(data.table)
test <- as.data.table(mtcars)

grouping_vars <- c("vs", "am")

#does what I would like
test[,.(counts = .N,
       mpg = mean(mpg),
       disp = median(disp)), by = .(vs,am)]

#throws error
test[,.(counts = .N,
       mpg = mean(mpg),
       disp = median(disp)), by = .(grouping_vars)]

#only gets the first variable
test[,.(counts = .N,
       mpg = mean(mpg),
       disp = median(disp)), by = .(get(grouping_vars))]

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    这里我们可以用c(代替.(

    library(data.table)
    test[,.(counts = .N,
        mpg = mean(mpg),
        disp = median(disp)), by = c(grouping_vars)]
    #    vs am counts      mpg  disp
    #1:  0  1      6 19.75000 160.0
    #2:  1  1      7 28.37143  79.0
    #3:  1  0      7 20.74286 167.6
    #4:  0  0     12 15.05000 355.0
    

    【讨论】:

      猜你喜欢
      • 2021-12-06
      • 2020-09-20
      • 2021-03-29
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      相关资源
      最近更新 更多