Я хотел бы использовать переменную, чтобы указать имя столбца при работе на нем.Использование переменной для указания имени столбца в `data.table`
Чтобы привести пример, у меня может быть таблица данных. Set1
, в которой я хочу изменить класс столбца x
на числовой. Я мог бы сделать
Set1New=transform(Set1,x=as.numeric(x))
Это будет работать, но теперь я не хочу, чтобы жестко закодировать имя столбца, а использовать переменную, позволяет называть его Y
(который ранее был определен как Y="x"
.
Как узнать R использовать содержимое переменной вместо того, чтобы искать колонку Y
, когда я использую
Set1New=transform(Set1,Y=as.numeric(Y))
Я знаю, что, например, setkey
и setkeyv
существуют, где setkeyv
решает эту проблему. Есть ли аналогичное решение для преобразования? Или, что я хотел бы получить лучше, существует ли общее решение использовать содержимое переменной вместо имени переменной?
Если это data.table, то 'Set1 [х: = as.numeric (x)] ' – akrun
Вероятно, вы ищете' Set1 [, (Y): = as.numeric (get (Y))] '. В общем случае, если вы уже используете 'data.table', операция, такая как' Set1New = transform (.. 'берет всю точку ее использования в первую очередь. Вы должны прочитать документацию' data.table' о NSE и присваивании по ссылке. Более конкретно посмотрите [здесь] (http://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.pdf) и [здесь] (https://github.com /Rdatatable/data.table/tree/master/vignettes) –
Или вы можете использовать 'eval'' Set1 [, (Y): = as.numeric (eval (as.name (Y)))] – akrun