R 使用 dyplyr 函数内部的粘贴来构建本地函数

R Using paste inside of dyplyr functions to build a local function

我正在尝试在构建本地函数时使用 dplyr 的摘要或重命名中的粘贴来命名变量。我收到一个错误:意外的 '=' in: " mutate(some.text= x) %>% rename(paste('hp', x, sep= '')="

这是一个例子:

data(mtcars)

get.information <- function(df, x) {
  df %>% 
    group_by(hp) %>% 
    summarize(paste('hp', x, sep= "")= n()) %>%
    mutate(some.text= x) 
}

get.information <- function(df, x) {
  df %>% 
    group_by(hp) %>% 
    summarize(Frequency= n()) %>%
    mutate(some.text= x) %>%
    rename(paste('hp', x, sep= "")= Frequency)
}

get.information(mtcars, 2)

非常感谢任何帮助,在此先感谢!

试试这个:

get.information <- function(df, x) {
    var.name = paste0('hp', x)
    var.val = lazyeval::interp('Frequency')
    df %>% 
        group_by(hp) %>% 
        summarize(Frequency= n()) %>%
        mutate(some.text= x) %>%
        mutate_(.dots = setNames(list(var.val), var.name))

}