2017-05-25 8 views
1

J'essaie d'utiliser paste dans un dplyr pour résumer ou renommer pour nommer une variable lors de la construction d'une fonction locale. Je reçois une erreur: inattendue '=' dans: "mute (certains.text = x)%>% renommer (coller ('hp', x, sep = '') ="R Utilisation de la fonction paste à l'intérieur des fonctions dyplyr pour créer une fonction locale

Voici un exemple :

data(mtcars) 

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

ou

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) 

Je vous remercie de toute aide, merci à l'avance

Répondre

1

Essayez ceci:

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

}