У меня есть функция, в которой я пытаюсь получить горячее кодирование столбца.Кажется, моя проблема связана с тем, как R интерпретирует строковое значение столбца, когда оно передается из функции:
function_notworking = function(data, col){
result = model.matrix(~col -1, data=data)
return(result)
}
# doesnt work
function_notworking(data=iris, col='Species')
Однако, если я это сделаю:
model.matrix(~Species -1, data = iris) it does work just fine.
Далее я попытался изучить это добавление rlang :: sym () и !!перед 'col', но это, похоже, тоже не работает.
function_notworking = function(data, col){
col = rlang::sym(col) #
result = model.matrix(~col -1, data=data)
#or result = model.matrix(~!!col -1, data=data)
return(result)
}
Нужно понять, как передать имена столбцов, подобные этой, и не получить проблему.
Если я использую expr () вокруг кода, кажется, что код !! rlang :: sym (col) делает свою работу, но я застрял.