Исправление названий городов штатов с помощью справочного файла - PullRequest
1 голос
/ 27 марта 2019

У меня есть набор данных, содержащий названия городов штатов (например, Нью-Йорк, Нью-Йорк), но некоторые названия локаций не верны.Бывают случаи, когда в месте с ошибкой указано место или отсутствуют пробелы (например, NY NEWW YORK или NY NEWYORK).У меня есть файл Excel со всеми правильными названиями городов, и мне интересно, есть ли способ выполнить какой-либо тип поиска этого файла и внести исправления в мой сценарий R.

Мой эталонный файл Excel настроеннапример:

CurrentOrigin     CorrectOrigin
NY NEW YORK        NY NEW YORK
NY NEWW YORK       NY NEW YORK

Я пытался написать заявление if, но безуспешно.

Мои навыки в R ограничены, но я делаю успехи каждый день.

if (df$Origin == df2$CurrentOrigin) {
     df2$CorrectOrigin ##not sure what to put in the statement
}

Любая помощь будет отличной!Заранее спасибо!

1 Ответ

0 голосов
/ 27 марта 2019

С пакетом tidyverse, как насчет соединения в стиле SQL

library(tidyverse)
df1 <- tibble('ids' = c('1a', '2b' , '3c'),
              'origin' = c('Ny New York', 'NY NEWYORK', 'NY NEWW York'))

refdf <- tibble('CurrentOrigin'= c('NY NEWYORK', 'Ny New York', 'NY NEWW York'),
                'CorrectOrigin' = rep('NY NEWYORK', 3))

df1corr <- left_join(df1, refdf, by = c('origin' = 'Current Origin'))

df1corr
# A tibble: 3 x 3
  ids   origin       CorrectOrigin
  <chr> <chr>        <chr>        
1 1a    Ny New York  NY NEWYORK   
2 2b    NY NEWYORK   NY NEWYORK   
3 3c    NY NEWW York NY NEWYORK       

left_join объединяет две таблицы, сохраняя все строки из левой таблицы df1. Затем вы можете проверить, есть ли в CorrectOrigin какие-либо недостающие данные или что-то еще, что вам нужно.

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