data.table: i 中逻辑条件的馈送列表
data.table: feeding list of logical conditions in i
我必须编写一个长脚本(称之为脚本)在 data.table 上执行各种操作,然后对不同的行子集应用几次。我希望能够做到以下几点:
condition <- "X>10"
source(Script)
... 其中脚本将包含以下许多内容:
dt[MAGIC(condition), .......]
这将允许我将脚本和条件保存在不同的文件中(第二个是仅显示结果的降价,我希望在代码方面尽可能简单)。
我不想要的是为每个条件复制粘贴脚本,然后手动更改它,因为这太容易出错了。
我尝试了很多parse、deparse、substitute、quote、as.expression、as.logical等组合,但我似乎在黑暗中摇摇欲坠。如果有人能提供帮助,我将不胜感激!
注意:我可以在 dplyr 中轻松完成上述操作:
df %>% filter_(condition)
当然我也可以把它变回 data.table
df %>% filter_(condition) %>% data.table()
...但我宁愿与 data.table 一致地工作(更快,更喜欢语法等)
我们使用eval(parse
setdT(dt)[eval(parse(text=condition))]
我必须编写一个长脚本(称之为脚本)在 data.table 上执行各种操作,然后对不同的行子集应用几次。我希望能够做到以下几点:
condition <- "X>10"
source(Script)
... 其中脚本将包含以下许多内容:
dt[MAGIC(condition), .......]
这将允许我将脚本和条件保存在不同的文件中(第二个是仅显示结果的降价,我希望在代码方面尽可能简单)。
我不想要的是为每个条件复制粘贴脚本,然后手动更改它,因为这太容易出错了。
我尝试了很多parse、deparse、substitute、quote、as.expression、as.logical等组合,但我似乎在黑暗中摇摇欲坠。如果有人能提供帮助,我将不胜感激!
注意:我可以在 dplyr 中轻松完成上述操作:
df %>% filter_(condition)
当然我也可以把它变回 data.table
df %>% filter_(condition) %>% data.table()
...但我宁愿与 data.table 一致地工作(更快,更喜欢语法等)
我们使用eval(parse
setdT(dt)[eval(parse(text=condition))]