data.table:提供i

时间:2017-08-10 15:30:50

标签: r data.table boolean-expression

我必须编写一个长脚本(称之为脚本),对data.table执行各种操作,然后对不同的行子集应用这几次。我希望能够做到以下几点:

condition <- "X>10"
source(Script)

...其中脚本将包含以下许多内容:

dt[MAGIC(condition), .......]

这将允许我将脚本和条件保存在不同的文件中(第二个是仅显示结果的降价,并且我希望在代码方面尽可能简单)。

我不想要的是复制粘贴每个条件的脚本,并手动更改它,因为这太容易出错。

我尝试了很多解析,解析,替换,引用,as.expression,as.logical等组合,但我似乎在黑暗中蹒跚而行。如果有人可以提供帮助我真的很感激!

注意:我可以在dplyr中轻松完成上述操作:

df %>% filter_(condition)

当然我也可以把它变回data.table

df %>% filter_(condition) %>% data.table()

...但我宁愿与data.table保持一致(更快,更喜欢语法等)

1 个答案:

答案 0 :(得分:1)

我们使用eval(parse

setdT(dt)[eval(parse(text=condition))]