У меня есть переменные с именами "VA01_01", "VA01_02" и т. Д. И "VA02_01", "VA02_02".Эти переменные с префиксом VA01 - это данные участников женского пола, а переменные с префиксом VA02 - участников мужского пола.Например, участники мужского пола имеют NA в переменных VA01.У меня уже есть фактор со значениями для пола.
Что я хотел бы сделать, это создать новый набор переменных, которые принимают значения обоих типов переменных.То есть, если это участник мужского пола, он получает значения переменных VA02 в этом наборе переменных.Таким образом, новый набор переменных больше не будет иметь NA, потому что он не будет основан на поле.
У кого-нибудь есть простое решение для этого вопроса?Я не знаю, является ли изменение формы ответом, потому что я действительно не хочу преобразовывать свой фрейм данных в длинный формат.
Вот как это выглядит в начале:
structure(list(sex = structure(c(1L, 2L, 1L, 2L), .Label = c("female",
"male"), class = "factor"), VA01_01 = c(1, NA, 2, NA), VA01_02 = c(4,
NA, 4, NA), VA02_01 = c(NA, 3, NA, 4), VA02_02 = c(NA, 5, NA,
3)), .Names = c("sex", "VA01_01", "VA01_02", "VA02_01", "VA02_02"
), row.names = c(NA, -4L), class = "data.frame")
И вот в конце (я хотел бы сохранить исходные переменные):
structure(list(sex = structure(c(1L, 2L, 1L, 2L), .Label = c("female",
"male"), class = "factor"), VA_tot_01 = c(1, 3, 2, 4), VA_tot_02 = c(4,
5, 4, 3), VA01_01 = c(1, NA, 2, NA), VA01_02 = c(4, NA, 4, NA
), VA02_01 = c(NA, 3, NA, 4), VA02_02 = c(NA, 5, NA, 3)), .Names = c("sex",
"VA_tot_01", "VA_tot_02", "VA01_01", "VA01_02", "VA02_01", "VA02_02"
), row.names = c(NA, -4L), class = "data.frame")