У меня есть фрейм данных, такой как df, и я хочу создать столбцы для генерации df2.
df <- data.frame(bind_cols(x = c('N', 'Y', 'N', 'Y', 'N'),
y = c(NA, 'N', 'Y', 'Y', 'N')))
df2 <- data.frame(bind_cols(x = c('N', 'Y', 'N', 'Y', 'N'),
y = c(NA, 'N', 'Y', 'Y', 'N'),
any = c('N', 'Y', 'Y', 'Y', 'N'),
both = c('N', 'N', 'N', 'Y', 'N')))
Новый столбец 'any' должен = 'Y', если один или другой, или оба из x и y == 'Y'. Оба должны = 'Y', если оба x и y == 'Y'.
Я не разобрался, как поступить с АН в первом ряду, чтобы сделать any = 'Y'. Моя текущая стратегия ниже, но даёт NA в строке 1, столбец «any», где я хочу, чтобы = «Y». Как мне изменить код, чтобы получить результат Y, даже если есть значение NA?
df2 <- df %>%
mutate(any = case_when(x =='Y'|y=='Y' ~'Y',
x != 'Y' & y != 'Y' ~ 'N'),
both = ifelse(x=='Y'& y=='Y', 'Y', 'N'))