gpt4 book ai didi

r - 在许多列上使用 dplyr + gsub

转载 作者:行者123 更新时间:2023-12-02 18:21:09 28 4
gpt4 key购买 nike

我使用 dplyrgsub 来删除特殊字符。我正在尝试翻译我使用基础 R 编写的代码。

这是一个类似于我的数据的假示例:

library(dplyr)

region = c("regi\xf3n de tarapac\xe1","regi\xf3n de tarapac\xe1")
provincia = c("cami\xf1a","iquique")
comuna = c("tamarugal","alto hospicio")

comunas = tibble(region,provincia,comuna)

这对我有用:

comunas = comunas %>% 
mutate(comuna = gsub("\xe1", "\u00e1", comuna), # a with acute
comuna = gsub("<e1>", "\u00e1", comuna) # a with acute
)

但现在我想对每一列应用相同的内容:

comunas = comunas %>% 
mutate_all(funs(gsub("\xe1", "\u00e1", .), # a with acute
gsub("<e1>", "\u00e1", .) # a with acute
))

我发现最后一 block 没有效果。这个想法是获得:

              region provincia        comuna
1 región de tarapacá camiña tamarugal
2 región de tarapacá iquique alto hospicio

以及任何其他需要的更改。

有什么想法吗?非常感谢!

最佳答案

2021 年更新

mutate_all 现在替换为 across。以下是在 dplyr 的帮助下在多个列中使用 gsub 的两种方法:

library(dplyr)

#data
region = c("regi\xf3n de tarapac\xe1","regi\xf3n de tarapac\xe1")
provincia = c("cami\xf1a","iquique")
comuna = c("tamarugal","alto hospicio")

comunas = data.frame(region,provincia,comuna,stringsAsFactors=FALSE)

#Without anonymous function
comunas %>%
mutate(across(everything(), gsub, pattern = "\xe1|<e1>", replacement = "\u00e1"))

#With anonymous function
comunas %>%
mutate(across(everything(),~ gsub("\xe1|<e1>","\u00e1", .)))

region provincia comuna
1 región de tarapacá camiña tamarugal
2 región de tarapacá iquique alto hospicio

原始答案

这对我有用:

region = c("regi\xf3n de tarapac\xe1","regi\xf3n de tarapac\xe1")
provincia = c("cami\xf1a","iquique")
comuna = c("tamarugal","alto hospicio")

comunas = data.frame(region,provincia,comuna,stringsAsFactors=FALSE)


comunas %>%
mutate(region = gsub("\xe1", "\u00e1", region), # a with acute
region = gsub("<e1>", "\u00e1", region) # a with acute
)


comunas %>%
mutate_all(funs(gsub("\xe1", "\u00e1", .), # a with acute
gsub("<e1>", "\u00e1", .) # a with acute
))

region provincia comuna region_gsub provincia_gsub comuna_gsub
1 región de tarapacá camiña tamarugal región de tarapacá camiña tamarugal
2 región de tarapacá iquique alto hospicio región de tarapacá iquique alto hospicio

关于r - 在许多列上使用 dplyr + gsub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43456687/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com