Странное поведение при вставке строк, состоящих из номера телефона - PullRequest
0 голосов
/ 05 января 2019

Я извлек данные (df) из чата WhatsApp и создал переменную с именем name. Теперь, в некоторых случаях, у меня нет имен, но есть номера телефонов.

Итак, на следующем шаге я пытаюсь присвоить каждому номеру имя. Теперь R демонстрирует странное поведение (извините, я не знаю другого имени для этого):

Когда я набираю which(df$name=="‪+49 176 12345678‬") в консоли, R каким-то образом меняет это на which(df$name=="*+49 176 12345678,") (и тогда, конечно, не может найти экземпляры этого числа). В то же время, кажется, есть «невидимый пробел»: когда мой курсор находится прямо справа от «8», и я нажимаю клавишу Backspace, «7» удаляется.

В случае, если это помогает: при просмотре переменной (View(df$name)) R не показывает мне числа, подобные +49 176 12345678‬, но <U+202A>+49 176 12345678‬<U+202C>. Однако эти управляющие символы Unicode не отображаются при использовании (например) `` table (df $ name) `.

1 Ответ

0 голосов
/ 06 января 2019

Попробуйте удалить символы, не входящие в ASCII, с помощью подхода, предложенного здесь: gist.github.com/nassimhaddad/4643587. Похоже, проблема, с которой вы столкнулись, заключается в том, что в ваших строках есть скрытые символы. Они создают все виды странного поведения. Выполнение df$text <- gsub("[^\x20-\x7E]", "", df$text) удалит не-ASCII-символы из строки, и у вас останутся только те цифры и символы, которые вы видите на дисплее.

...