Как искать значение каждой строки в нескольких столбцах в R? - PullRequest
0 голосов
/ 17 мая 2018

Я новичок в R и не смог найти хороший способ решить эту проблему Вот такой фрейм данных:

person_ID    city        A    B    C    group
11           chicago     1              AA
12           Denver           1         AA
13           atlanta              2     BB
14           chicago              1     AA 
15           new-york    2              BB

Person_id является уникальной переменной, и для каждого человека определяются города, A, B, C. Числа в столбцах A, B, C являются уникальными номерами, которые могут быть назначены нескольким лицам и могут отображаться в одном из этих столбцов (A, B, C). Я хочу назначить номер группы каждому человеку, используя город, A, B, C, если между двумя людьми есть что-то общее, они будут в одной группе. для человека 13 и 15 из-за общего числа 2 находятся в той же группе (BB)

1 Ответ

0 голосов
/ 17 мая 2018

Возможно, вам будет проще работать с другим форматом данных. Попробуйте

long_format <- data_frame %>%
  gather(letter, value, A:C)

Наличие person_ID 14 немного усложняет ситуацию на этом этапе, потому что у этого человека нет никаких значений для каких-либо букв. Чтобы удалить NA из других идентификаторов, этот идентификатор полностью исчезает. Если все в порядке, вы можете сделать

long_format <- data_frame %>%
  gather(letter, value, A:C, na.rm = TRUE)

Чтобы использовать это, чтобы получить всех людей с 2 ​​в качестве значения в письме, независимо от чего-либо еще, возьмите

long_format %>%
  filter(value == 2)

Чтобы сгруппировать их по значению (может не работать с NA), возьмите

long_format %>%
  group_by(city, value) %>%
  summarize(
    n = n(), # will summarize how many individuals are in each pair
    IDs = paste(person_ID, collapse = " ") # which IDs are in each group
  )

Это всего лишь примеры - я не совсем уверен, что вы хотите сделать с данными на данный момент.

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