首页 > 解决方案 > 如何将字符串放入 data.table 中的 keyby 参数中

问题描述

我知道我可以做到这一点,

x<- data.table( mtcars )
x[ , .N , by = as.numeric( gear==4 & carb==4) ]

但我不知道如何用字符串来做到这一点。如果我使用的是单个变量名,我可以使用get(),这会起作用

x[ , .N , by = get( "as.numeric( gear==4 & carb==4)") ]

标签: rdata.table

解决方案


最简单的是eval(parse

library(data.table)
x[ , .N , by = .(grp = eval(parse(text = "as.numeric( gear==4 & carb==4)") ))]
#   grp  N
#1:   1  4
#2:   0 28

推荐阅读