我正在尝试使用内部的mutate构建函数。代码如下
pre_process_corpora <- function(data, column, new_column){
data %>% mutate(new_column = tolower(column))
}
但是,在运行该函数时,出现了以下错误,但我仍然不知道为什么。
Error in eval(lhs, parent, parent) : object 'x' not found
我还试图用以下语法构建另一种功能
data$new_column <- tolower(data$column)
但是,我收到以下错误消息
$ operator is invalid for atomic vectors
任何提示/见解都值得赞赏!
答案 0 :(得分:2)
和dplyr和rlang呆在一起,也许像这样吗?
library(dplyr)
library(rlang)
pre_process_corpora<-function(data, column, new_column){
column <- enquo(column)
new_column <- quo_name(enquo(new_column))
data %>% mutate(!!new_column := tolower(!!column))
}
d <- data.frame(x = LETTERS[1:5],stringsAsFactors = FALSE)
pre_process_corpora(d,x,foo)