Создание новой переменной из нескольких двоичных категорий в R - PullRequest
0 голосов
/ 06 мая 2020

У меня есть 9 переменных, обсуждающих, «с кем живет ID». Существует более 3000 переменных идентификатора, первые четыре столбца - это «мать, мачеха, отец и отчим»,

dummyid yafam01 yafam02 yafam03 yafam04  
    <dbl>   <dbl>   <dbl>   <dbl>   <dbl> 
1  100001       1       2       1       2 
2  100004       1       2       2       2 
3  100007       1       2       2       1 
4  100010       1       2       1       2 
5  100016       1       2       1       2 
6  100019       1       2       1       2

1 означает, что галочка отмечена, а 2 - не отмечена

Мне нужно создать новую переменную, которая определяет, с кем они живут. Во всем наборе данных 1 и 2 означают «отмечен» и «не отмечен» (теоретически да / нет). Поэтому мне нужна одна новая переменная, которая назначает, если они живут с «матерью, отцом, обоими, мачехой, отчимом или обоими. мачеха и отец '

1 Ответ

0 голосов
/ 06 мая 2020

Я создал несколько фиктивных данных в описанном вами формате:

data = read.delim("family.txt", row.names = 1, sep = " ")
       m sm f sf
100001 1  2 1  2
100002 1  1 1  2
100003 1  1 2  2
100004 2  2 1  2
100005 2  2 2  1

Затем я преобразовал их в логические значения (с которыми легче работать):

data = apply(data - 1, 2, as.logical) # Convert to true/false

Затем я просто создаю вектор поиска с семейными угольками и запускаю apply l oop для подмножества этого на основе данных:

lives_with = c('mother', 'step-mother', 'father', 'step-father')
family_encoding = apply(data, 1, function(row){
    paste(lives_with[row], collapse = ":")
})

Это дает вектор кодировок, который вы можете использовать к коэффициенту:

> factor(family_encoding)
[1] step-mother:step-father        step-father                   
[3] father:step-father             mother:step-mother:step-father
[5] mother:step-mother:father     
5 Levels: father:step-father ... step-mother:step-father
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...