R: Как использовать mutate, используя несколько условий для столбца - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу сгенерировать переменную-индикатор, которая принимает значение 1 для лица 1, если в группе идентификаторов существует лицо 3, иначе 0.

Контекст: ID уникален для каждого домохозяйства. Лицо 3 - это ребенок Лица 1 в этом домохозяйстве, указанном в удостоверении личности. Хотите сгенерировать HasAChild = 1 для Person = 1, если в домохозяйстве существует Person = 3 (по идентификатору).

как это выглядит

enter image description here

ID <- c(200, 200, 200, 211, 211, 222, 222, 222, 233, 233, 233, 233)
Person <- c(1, 3, 5, 1, 2, 1, 2, 3, 1, 2, 4, 5)
Is_A_Child <- c(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)
Has_A_Child <- c(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0)
df <- data.frame(ID, Person, Is_A_Child, Has_A_Child)

1 Ответ

0 голосов
/ 27 февраля 2020

Добро пожаловать. Вы можете сделать это с помощью mutate из dplyr. Вам просто нужно сгруппировать их с ID

data %>% group_by(ID) %>% mutate ( HasAChild = ifelse("3" %in% Person & Person == 1,1,0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...