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

R使用dyplyr函数内部的粘贴来构建局部函数,r,dplyr,rename,paste,summarize,R,Dplyr,Rename,Paste,Summarize,在构建局部函数时,我试图在dplyr的summary或rename中使用paste来命名变量。我收到一个错误:“mutate(some.text=x)%>%rename(paste('hp',x,sep='')=”中出现意外的“=”“ 以下是一个例子: data(mtcars) get.information <- function(df, x) { df %>% group_by(hp) %>% summarize(paste('hp', x, se

在构建局部函数时,我试图在dplyr的summary或rename中使用paste来命名变量。我收到一个错误:“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) 
}
数据(mtcars)
获取.信息%
分组依据(hp)%>%
汇总(粘贴('hp',x,sep=“”)=n())%>%
变异(some.text=x)
}

get.information%
分组依据(hp)%>%
汇总(频率=n())%>%
变异(some.text=x)%>%
重命名(粘贴('hp',x,sep=“”)=频率)
}
获取信息(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))

}
get.information%
分组依据(hp)%>%
汇总(频率=n())%>%
变异(some.text=x)%>%
mutate_(.dots=setNames(list(var.val),var.name))
}
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))

}