2017-05-25 61 views
1

我想在构建本地函数时使用粘贴在dplyr的汇总或重命名中来命名变量。我得到一个错误:意外的'='在:“mutate(some.text = x)%>%rename(paste('hp',x,sep ='')=”R在dyplyr函数中使用粘贴来构建本地函数

这里是一个例子!

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) 

我想感谢所有帮助,在此先感谢

回答

1

试试这个:

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

}