Как я могу создать новую двоичную переменную, которая классифицирует людей на основании того, что они когда-либо имели определенный ответ в наборе данных? - PullRequest
1 голос
/ 01 мая 2020

Я изучаю употребление наркотиков в течение 5 лет примерно у 100 человек. Я хочу создать двоичную переменную, которая указывает, могут ли люди когда-либо считаться потребителями наркотиков (0 = никогда не употреблять, 1 = пользователь).

Ниже, 1 указывает на употребление наркотиков, 0 указывает на отсутствие и NA указывает на отсутствующие данные в то время. Вот несколько примеров:

0  0  0  1  1
0  1  0  1  1
NA 0  1  0  NA
NA 0  0  0  1
0  0  NA NA 0

Почти во всех моих делах отсутствуют данные хотя бы для одной временной точки.

Я новичок в R, поэтому я действительно пытаюсь понять узнать, как создать эту новую двоичную переменную. По сути, код должен сканировать все 5 временных точек, чтобы увидеть, появляется ли «1», и должен уметь обрабатывать NA.

Любой совет был бы великолепен!

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Предполагается, что люди появляются в строках, а годы в столбцах:

  d <- read.table(text="
      0  0  0  1  1
    0  1  0  1  1
    NA 0  1  0  NA
    NA 0  0  0  1
    0  0  NA NA 0", header=F
    )

d$true <- apply(d,1, function(x)any(x==1, na.rm = T))*1

d

  V1 V2 V3 V4 V5 true
1  0  0  0  1  1    1
2  0  1  0  1  1    1
3 NA  0  1  0 NA    1
4 NA  0  0  0  1    1
5  0  0 NA NA  0    0
1 голос
/ 01 мая 2020

Мы можем использовать rowSums

df1$new <- +(rowSums(df1 == 1, na.rm = TRUE) > 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...