Удалите все строки, которые не соответствуют набору строк и переклассификации столбцов - PullRequest
1 голос
/ 14 марта 2020

У меня есть набор данных социальных сетей, запрашиваемых из Twitter API, который также включает местоположение людей, о которых сообщалось. Однако строка местоположения не является стандартным форматом для классификации по умолчанию, и иногда есть значение "троллей". Вот пример

a1 = data.frame(x=c(1:4),y=c("181 Metro Drive San Francisco", "Wall Street New York", "Austin, TX", "The Moon"))
a1

Мой план состоит в том, чтобы получить файл CSV со всеми названиями городов по всему миру в https://www.kaggle.com/max-mind/world-cities-database и импортировать его в R как вектор, вот маленький пример

a2 = c("New York", "Washington", "Austin")
a2

Я хочу написать функцию R, которая ссылается на a1 на основе a2, заменить все строки в a1, где она не отображается на a2 как NA, и заменить все строки, где он появляется на a2 точными значениями строки. Например, скажем, что наша функция - f, вывод функции будет следующим:

x = data.frame(x=c(1:4),c("San Francisco", "New York", "Austin", NA))
x

Могу ли я написать для этого функцию в R, или для этой задачи существует какая-либо сборка пакета R? Спасибо за помощь

1 Ответ

1 голос
/ 14 марта 2020

Мы можем вставить все названия городов в виде шаблона, а затем использовать str_extract для его извлечения.

library(stringr)

str_extract(a1, str_c(a2, collapse = "|"))
#[1] "San Francisco" "New York"      "Austin"        NA 

данные

a2 = c("New York", "Washington", "Austin", "San Francisco")
a1 = c("181 Metro Drive San Francisco", "Wall Street New York", 
       "Austin, TX", "The Moon")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...