Обращение к столбцам data.table по именам, сохраненным в переменных

data.table это фантастический R-пакет, и я использую его в библиотеке, которую разрабатываю. Пока все идет хорошо, за исключением одного осложнения. Кажется, что гораздо сложнее (по сравнению с обычными кадрами данных) сослаться наdata.table столбцы, использующие имена, сохраненные в переменных (как для фреймов данных, например:colname="col"; df[df[,colname]<5,colname]=0).

Возможно, больше всего усложняет очевидное отсутствие согласованности синтаксиса этого вdata.table, В некоторых случаях,eval(colname) а такжеget(colname), или дажеc(colname) похоже на работу. В других,DT[,colname, with=F] это решение. Тем не менее, в других, таких как, например,set() а такжеsubset() функции, я не нашел решения вообще. Наконец, крайний, хотя и довольно распространенный случай использования обсуждался ранее (передача имен столбцов в data.table программным способом) и предложенные решения, хотя, по-видимому, и делают свое дело, не показались особенно читабельными ...

Возможно, я слишком усложняю вещи? Если бы кто-нибудь мог записать краткий лист для ссылки наdata.table Имена столбцов, использующие переменные для разных распространенных сценариев, были бы очень благодарны.

ОБНОВИТЬ:

Некоторые конкретные примеры, которые работают, если я могу жестко кодировать имена столбцов

x.short = subset(x, abs(dist)<=100)
set(x, which(x$val<10), "val", 0) 

Теперь предположимdistcol="dist", valcol="val", Каков наилучший способ сделать выше, используяdistcol а такжеvalcol, но нетdist а такжеval?

Ответы на вопрос(3)

Ваш ответ на вопрос