При объединении двух фреймов данных, как я могу заменить отсутствующие значения в одном наборе данных на значения из другого набора данных?
Мой рабочий пример взят из исследования с 3 волнами (временными точками), где некоторые вопросы были опущены изпоследовательные волны.Я хочу создать полный набор данных со всеми волнами в длинном формате, который я могу легко разбить на меньшие наборы, сохраняя при этом все переменные значащими.
Вот некоторый воспроизводимый код:
df1<-data.frame(id=seq(10),
sex=rep(c(1,2), 5),
age=sample(c(18:24), 10, replace = T),
x = rnorm(10),
wave = rep("wave1", 10))
df2<-data.frame(id=seq(10),
x = rnorm(10),
wave = rep("wave2", 10))
dplyr::full_join(df1, df2)
Joining, by = c("id", "x", "wave")
id sex age x wave
1 1 1 18 0.7236847 wave1
2 2 2 18 0.5730599 wave1
3 3 1 21 2.0341799 wave1
4 4 2 20 -0.1531575 wave1
5 5 1 18 -0.6089901 wave1
6 6 2 18 -0.3233804 wave1
7 7 1 19 -0.1417807 wave1
8 8 2 21 0.9557512 wave1
9 9 1 24 0.6522168 wave1
10 10 2 20 0.1595824 wave1
11 1 NA NA 1.9694018 wave2
12 2 NA NA 1.4153806 wave2
13 3 NA NA 1.1160011 wave2
14 4 NA NA -0.6040353 wave2
15 5 NA NA -0.3750569 wave2
16 6 NA NA 0.4826182 wave2
17 7 NA NA 0.7210480 wave2
18 8 NA NA 1.9068413 wave2
19 9 NA NA 1.5355046 wave2
20 10 NA NA 1.3607414 wave2
Моя цель: на основе участника id
заменить NA в sex
и age
для измерений Wave2 данными Wave1.
EDIT : Пожалуйста, предположите, что у меня больше нетдоступ к df1
и df2
- я работаю только с объединенными данными, и в действительности есть больше переменных, которые поставляются с `` NA`s.Я должен был указать это ранее.