找不到功能对象'x'中的突变

时间:2018-09-24 14:36:58

标签: r dplyr mutate

我正在尝试使用内部的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

任何提示/见解都值得赞赏!

1 个答案:

答案 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)