Как создать индикаторную переменную в R, состоящую из двух одинаковых переменных? - PullRequest
0 голосов
/ 26 ноября 2018

сначала я совсем новичок в R, поэтому извините, если это глупый вопрос (но я раньше просматривал ..)

У меня есть df с двумя целыми числами varA и varB (где varB могбыть NA) и мне нужно создать третью переменную, которая равна 1, если varA и varB равны, или 0, если нет, или если varB равен NA.

Я уже пробовал (безуспешно) эти подходы:

mydf$varC <- 0
mydf$varC[(!is.na(mydf$varB)) && (mydf$varA == mydf$varB)] <- 1

mydf$varC <- ifelse(mydf$varA == mydf$varC, 1, 0)

1 Ответ

0 голосов
/ 26 ноября 2018

Вот простой пример:

df = data.frame(varA = c(1,1,0,0),
                varB = c(1,0,0,NA))

df$flag = ifelse(df$varA == df$varB & !is.na(df$varB), 1, 0)

#   varA varB flag
# 1    1    1    1
# 2    1    0    0
# 3    0    0    1
# 4    0   NA    0

Новый столбец (flag) будет 1, только если значения одинаковы и , если varB нетNA.В любом другом случае (т.е. значения не совпадают или varB равно NA) это будет 0.

...