Замена строки символом больше / меньше не заменяется - PullRequest
0 голосов
/ 26 мая 2018

Я хочу очистить таблицу от нежелательных символов.Таблицу можно скачать здесь бесплатно: 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", код работает, но не в том случае, если он содержит символы <>.В чем здесь проблема?Я использую R 3.3.3 в RStudio 1.0.136 на MacOS 10.13.4.

1 Ответ

0 голосов
/ 26 мая 2018

Это похоже на работу.Если вы введете 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 делали трюк.Параметр x в gsub не является первой переменной, когда вы делаете ?gsub.

edit2: я использую версию windows & 3.5.0 R

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...