我认为元编程在这里是正确的术语。
我希望能够使用data.table就像在Webapp中使用MySQL一样。也就是说,Web用户使用一些Web前端(例如,Shiny服务器)选择数据库,选择要过滤的列,选择要分组的列,选择要聚合和聚合的列。我想将R和data.table用作查询,聚合等的后端。假设前端存在,并且R具有这些变量作为字符串,并且它们已经过验证等。
我编写了以下函数来构建data.table表达式,并使用R的parse / eval元编程功能来运行它。这是这样做的合理方法吗?
我提供了所有相关代码进行测试。将此代码作为源代码(在阅读后为了安全起见!)并运行test_agg_meta()对其进行测试。这只是一个开始。我可以添加更多功能。
但是我的主要问题是我是否对此有过多的思考。当未预先确定所有输入而无需进行解析/评估元编程时,是否有更直接的方式使用data.table?
我也知道“ with”语句和其他一些无糖功能的方法,但是不知道它们是否可以处理所有情况。