2017-05-25 17 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)) 

}