Как очистить город и штат (как полный, так и в аббревиатуре) с помощью R - PullRequest
0 голосов
/ 03 июня 2018

У меня есть список неочищенных городов и штатов из "Местоположение" в твиттере, например:

location <- c("the Great Lake State", "PA", "Harrisburg, Pennsylvania",
              "Pennsylvania", "MI", "Detroit,MI")

Как очистить данные, чтобы создать чистый список из двух столбцов с городом и штатом?

desired output

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Если ваши данные (location) уже являются частью data.frame, который вы хотите очистить, тогда tidyr::separate может быть подходящим вариантом.

location <- c("the Great Lake State", "PA", "Harrisburg, Pennsylvania",
              "Pennsylvania", "MI", "Detroit,MI")


library(tidyverse)

as.data.frame(location) %>% # I created a data.frame, which is not needed in actual data 
  tidyr::separate(location, c("City", "State"), sep=",", fill="left")

#         City                State
# 1       <NA> the Great Lake State
# 2       <NA>                   PA
# 3 Harrisburg         Pennsylvania
# 4       <NA>         Pennsylvania
# 5       <NA>                   MI
# 6    Detroit                   MI
0 голосов
/ 03 июня 2018

Вы можете сделать это:

splitted_list <- strsplit(location,",")
wide_matrix   <- sapply(splitted_list,function(x) c(rep(NA,length(x)==1),x))
res <- setNames(data.frame(t(wide_matrix),stringsAsFactors = FALSE),c("city","state"))
res
#         city                state
# 1       <NA> the Great Lake State
# 2       <NA>                   PA
# 3 Harrisburg         Pennsylvania
# 4       <NA>         Pennsylvania
# 5       <NA>                   MI
# 6    Detroit                   MI
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...