Как написать аргумент select
без символов обратного хода? Я хотел бы сделать это, чтобы передать этот аргумент из переменной в виде символьной строки.Избегайте обратных символов с помощью dplyr
df <- dat[["__Table"]] %>% select(`__ID`) %>% mutate(fk_table = "__Table", val = 1)
Изменения аргумента выбора для "__ID"
дает эту ошибку:
Error: All select() inputs must resolve to integer column positions.
The following do not:
* "__ID"
К сожалению, _
символов в именах столбцов не избежать, так как данные загружаются из реляционной базы данных (FileMaker) через ODBC и их необходимо записать обратно в базу данных при сохранении имен столбцов.
В идеале, я хотел бы быть в состоянии сделать следующее:
colName <- "__ID"
df <- dat[["__Table"]] %>% select(colName) %>% mutate(fk_table = "__Table", val = 1)
Я также попытался eval(parse())
:
df <- dat[["__Table"]] %>% select(eval(parse(text="__ID"))) %>% mutate(fk_table = "__Table", val = 1)
Он бросает эту ошибку:
Error in parse(text = "__ID") : <text>:1:1: unexpected input
1: _
^
Кстати, следующее работает, но потом я возвращаюсь к квадрату (все еще с символом обратного хода).
eval(parse(text="`__ID`")
Ссылка о кавычке символах в R
:
Вы должны посмотреть на использование 'select_()' (и других подстановочных версий функций 'dplyr'). – hrbrmstr
Разве это не дубликат этого - http://stackoverflow.com/questions/24569154? – zx8754