Удаление значений "\ N" во фрейме данных - PullRequest
0 голосов
/ 06 мая 2020

У меня есть фрейм данных, в котором один столбец является символьным типом. В этом столбце для некоторых значений записано «\ N», и я хочу удалить строки, содержащие эти значения, из фрейма данных. Я не мог понять. Текущий код, который я использую: airport_m <-airports_m [airport_m $ IATA! = "\ N",] Это дает ошибку </p>

Error: '\N' is an unrecognized escape in character string starting ""\N"

Пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Нам нужно использовать здесь grepl, поскольку это совпадение с шаблоном, а не точное совпадение.

subset(airports_m, !grepl('\\N', IATA))

Это то же самое, что использовать:

airports_m[-grep('\\N', airports_m$IATA), ]

или

airports_m[grep('\\N', airports_m$IATA, invert = TRUE), ]
1 голос
/ 06 мая 2020

Обратные косые черты - это «escape-символы» в строках R. Например, перевод строки - «\ n», а табуляция - «\ t». Таким образом, чтобы получить буквальный backsla sh, вам нужно избежать escape-символа. Для обозначения двухсимвольной строки \ N используйте строку "\\N". Итак, к вашему коду

library(tidyverse)
airports_m %>%
  filter(IATA != "\\N")

Или на всякий случай есть другой tra sh в строке

airports_m %>%
  filter(! str_detect(IATA , "\\N"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...