2017-07-14 107 views
1

我写了一个函数寻找如下:如何使用dplyr替换R中的多个字符?

special_char <- function(data_in) { 
    data_in=gsub("à","a",data_in) 
    data_in=gsub("â","a",data_in) 
    data_in=gsub("é","e",data_in) 
    data_in=gsub("î","i",data_in) 
    data_in=gsub("ä","ae",data_in) 
    data_in=gsub("ö","oe",data_in) 
    data_in=gsub("ü","ue",data_in) 
    data_in=gsub("imp.","impessa",data_in) 
    data_in=gsub("ch.","chemin",data_in) 
    data_in=gsub("av.","avenue",data_in) 
    data_in=gsub("str.","strasse",data_in) 

    return(data_in) 
} 

然后,我尝试把它在我的数据集使用。

some_data %>% mutate_all(funs(special_char(.))) 

然而,输出是一团糟。有人注意到我的方法中有一个明显的错误吗?

假设我有以下输入:

data_test <- data.frame(col1 = c("Céline", "Désiré", "Björn")) 

我希望得到以下的输出:

c("Celine", "Desire", "Bjoern") 
+1

您能提供一个转换失败的数据框样本吗? –

+1

@MattJewett'评论...和预期的输出。 – Prradep

+0

当然 - 谢谢你的评论!我添加了一个可能的输入和我的预期输出。 –

回答

1

这个工作对我来说:

some_data %>% mutate_all(funs(special_char)) 

我希望这也为您解决问题。如果不是,你的数据是什么样的?

Florian

+0

不幸的不是。我的输出如下所示:ncated> 1 ueoueeueaueoueeueeueoueeueiueoueeueaueoueeueeueoueeueeueueeeeeueaueoueeueeueoueeueiueoueeueaueoueeueeueoueeueiueoueeueaueoueeueeueoueeueaueoueeue ... –

+0

这很奇怪,我运行我的代码与您的示例输入data_test,我得到了预期的输入。您提供的错误是基于与上面的示例输入一起运行还是与原始输入一起运行? – Florian

+0

带有示例输入。这真是奇怪......也许我的编码有问题。 –

相关问题