оригинальный вопрос
Я хочу, чтобы добавить ряд фиктивных переменных в кадре данных для каждого значения х в этом кадре данных, но, содержащих NA, если это другой переменной является NA. Например, предположим, что у меня есть ниже фрейм данных:Р: Создание фиктивных переменных для значений одной переменной условной на другой переменной
x <- seq(1:5)
y <- c(NA, 1, NA, 0, NA)
z <- data.frame(x, y)
Ищу производить:
- var1, что: г $ var1 == 1, если х == 1, в противном случае, если у = = NA, z $ var1 == NA, else z $ var1 == 0.
- var2 такое, что: z $ var2 == 1 if x == 2, else if y == NA, z $ var2 == NA , иначе г $ var2 == 0.
- var3 т.д.
Я не могу понять, как это сделать. Я ищу решение, которое можно использовать для большого количества значений x.
UPDATE
Был некоторая путаница, что я хотел перебирать каждого индекса х. Я не ищу этого, а скорее для решения, которое создает переменную для каждого уникального значения x. При приеме данных ниже в качестве входных данных:
x <- c(1,1,2,3,9)
y <- c(NA, 1, NA, 0, NA)
z <- data.frame(x, y)
Ищу г $ var1, г $ var2, г $ var3, г $ var9 где г $ var1 < - с (1, 1, NA, 0 , NA) и z $ var2 < - c (NA, 0, 1, 0, NA). Исходное решение дает z $ var1 < - z $ var2 < - c (1,1, NA, 0, NA).
Не совсем. Значения каждого из var1, var2, var3 и т. Д. Должны быть только {0, 1, NA]. Я предполагаю, что это должно быть ifelse (x == i, 1, ... Кроме того, вы можете объяснить, как здесь работает setNames? Не знаю, зачем мне это нужно. – user3614648
Неплохо смущаю состояние и результаты, см. обновление. 'setNames' - это просто удобный способ настройки имен столбцов. Если вам это не интересно, мы можем удалить его. – Psidom
Обновлено: см. выше. – user3614648