Мне нужно воссоздать исходные переменные очень большого фрейма данных (более 900 переменных). Вот пример того, что я пытаюсь сделать:Создать условные новые переменные в R
dat <- data.frame(
id=c('user1','user2','user3'),
agePanel1=c(20,25,32),
agePanel2=c(21,NA,33),
favColPanel1=c('blue','red','blue'),
favColPanel2=c('red',NA,'red')
)
id agePanel1 agePanel2 favColPanel1 favColPanel2
1 user1 20 21 blue red
2 user2 25 NA red NA
3 user3 32 33 blue red
Для каждой переменной, мне нужно создать новую переменную (возраст и favCol ниже), которое NA, когда есть данные панели и в противном случае первое групповое наблюдение. В случаях с неполными данными панели все значения панели должны быть установлены на NA. В результате этого примера будет выглядеть следующим образом:
id age agePanel1 agePanel2 favCol favColPanel1 favColPanel2
1 user1 NA 20 21 NA blue red
2 user2 25 NA NA red NA NA
3 user3 NA 32 33 NA blue red
Я начал пробовать что-то с dplyr и tidyr:
mutate(dat, age = ifelse(is.na(test$agePanel2),agePanel1,NA))
Я изо всех сил, чтобы найти способ, чтобы сделать петлю или что-то, что может автоматизировать этот процесс.
Я чувствую, как ты уже это: 'Дат $ возраста <- IfElse (is.na (Даты $ agePanel2), Даты $ agePanel1, NA)' –