создание ссылки между столбцами для присвоения одинакового значения - PullRequest
0 голосов
/ 19 февраля 2019

Как сделать ссылки между 2 столбцами, которые логически связаны?

Т.е. у меня есть 1 столбец, который является городом, а второй - почтовый индекс, который выглядит так:

city zipcode
NA      555
NYC     555
NYC      NA

Так что это очевидночто между ними есть связь, но как заставить принудительно наложить одинаковые значения для соответствующих столбцов, если известно 1 значение любого из столбцов?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

С 580 значениями, как вы говорите, проблема больше, чем представленные выше данные, если предоставить только один ZIP и один город.

Я бы предложил объединить каждый столбец вашего фрейма данных после созданиязавершить кейс, а затем получить уникальные полные строки, используя distinct:

library(tidyverse)

df_2 <- df %>% 
  filter(complete.cases(city, zipcode)) %>% 
  merge(select(df, city), by = "city", all.x = TRUE) %>% 
  merge(select(df, zipcode), by = "zipcode") %>%
  distinct(city, zipcode)

из примера представительства, это оставляет только одну строку, но с 580 строками я предполагаю, что у вас есть более одного города и один ZIPкод.

0 голосов
/ 19 февраля 2019

Вот псевдокод

1. Filter rows in the dataframe that have zipcode as 555
2. For these rows, look for city = NA and impute this with the unique(city) value 

Repeat the same with City 
1. Filter rows in the dataframe that have City = NYC
2. For these rows, look for zipcode = NA and impute this with the unique(zipcode) value 

Both these steps will have to be looped over the entire dataset rows that have NA in any of those 2 columns. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...