【发布时间】:2021-05-27 19:03:14
【问题描述】:
我想允许我的函数的用户使用任意列名,我需要在 data.table 中引用这些。从 var 中获取列名是可行的,除非 var 的名称也是 dt 的列。我想要一个解决方案来修改我的参考方法(即 get(id) ),以便它适用于变量和列名重叠的情况,以及它们不重叠的情况——使用 data.table v1.14.0当列与变量同名时(包含所需的列引用),该列优先,这会破坏get(id)。
dt=data.table(id='id1')
id='id'
dt[get(id) %in% 'id1',] #fails
dt=data.table(subject='id1')
id='subject'
dt[get(id) %in% 'id1',] #works
有很多与通过变量引用列名相关的问题,但我找不到一个解决方案来避免这种极端情况,即用户碰巧使用与我的引用变量相同的列名。
【问题讨论】:
标签: r data.table