str_replace()使用来自SPDF,stringr包的向量在R中转义问号

时间:2018-03-28 08:29:00

标签: r stringr

我很尴尬地提出这个问题,但我尝试使用gsubstringr包。

我无法完成这些字符串替换:

str_replace(mexispdf@data$ADM1NAME,pattern = "M\\?xico",replacement = "México")
str_replace(mexispdf@data$ADM1NAME,pattern = "Nuevo Le\\?n" ,replacement = "Nuevo León")
str_replace(mexispdf@data$ADM1NAME,pattern = "San Luis Potos\\?",replacement = "San Luis Potosí")
str_replace(mexispdf@data$ADM1NAME,pattern = "Quer\\?taro de Arteaga",replacement = "Querétaro de Arteaga")

我认为问题是ADM1NAME是一个因素,而不是一个角色,所以我改变了它:

mexispdf@data$ADM1NAME<-as.character(mexispdf@data$ADM1NAME)

但它仍然不起作用:

enter image description here

数据在此处:http://sedac.ciesin.columbia.edu/data/set/povmap-small-area-estimates-poverty-inequality/data-download

只需下载墨西哥shapefile即可。

3 个答案:

答案 0 :(得分:1)

library(stringr)
str_replace_all("Is Nuevo Leon in Mexico?", 
                c("M.xico" = "México", "Nuevo Le.n" = "Nuevo León"))


# [1] "Is Nuevo León in México?"

答案 1 :(得分:0)

gsub使用fixed=TRUE参数为我工作:

a = "M\\?xico"
gsub(pattern = "\\?",replacement = "é",a, fixed = TRUE)
# "México"

答案 2 :(得分:0)

使用stringr即可

> str_replace_all("M\\?xico", pattern = c("[^M?xico]"="é", "[?]"=""))
[1] "México"