用大于/小于符号替换字符串不会被替换



我想从不需要的字符中清除表格。该表可以在这里免费下载: https://www.aggdata.com/free/germany-postal-codes
它包含所有德国邮政编码,并且由于在德国有一些特殊字符,如ü,ö,ä或ß,我需要将它们交换为其他符号。 现在假设我想用"ss"替换所有"ß"。 我使用了这段代码,从Stack Overflow中的不同帖子中收集。我的代码如下所示:

postal <- read.csv("~/Downloads/de_postal_codes.csv")
postal <- as.data.frame(sapply(postal,gsub,pattern="<df>",replacement="ss"))  

当我尝试替换其他字符串进行测试时,例如pattern = "Cot"代码有效,但如果它包含<>符号则无效。这里有什么问题? 我在MacOS 10.13.4上的RStudio 1.0.136中使用R 3.3.3。

这似乎有效。如果将encoding = "UTF-8"放入read.table命令,则会看到<df>返回为xdf。我对这个领域了解不多,但尝试使用原始编码似乎有效。希望这有帮助

postal <- read.table("~/Downloads/de_postal_codes.csv", sep = ",", header = TRUE,
stringsAsFactors = FALSE)
postal$Place.Name[4]
postal <- as.data.frame(
sapply(postal, function(x){
gsub(pattern="xdf", replacement="ss", x=x)
}) 
)
postal$Place.Name[4]

编辑:另外,我不认为你sapply在做这个把戏。gsub中的x参数不是执行?gsub时的第一个变量。

edit2:我正在使用Windows和3.5.0 R版本

最新更新