假设说,数据是一个变量加上多个年份year和多个年龄组age-group,这个变量有很多NA空值。我现在已经按year和age-group计算出了该变量的非NA值在不同年份中不同年龄组的均值,是像这样的dataframe:
| surveyperiod_year | age_group | mean_value |
2008 | 1 | 7.982143 |
2008 | 2 | 7.896907 |
2008 | 3 | 7.917293 |
2008 | 4 | 8.096491 |
2008 | 5 | 7.82906 |
2009 | 1 | 7.850242 |
2009 | 2 | 8.021739 |
2009 | 3 | 7.99537 |
2009 | 4 | 8.066372 |
2009 | 5 | 7.99569 |
2010 | 1 | 7.988827 |
2010 | 2 | 7.873016 |
2010 | 3 | 8.199029 |
2010 | 4 | 8 |
2010 | 5 | 7.961686 |
我现在想用每个year和age-group的mean_value来一一对应给每一个同样year和age-group的变量的空值进行赋值,我的code是这样写的:
data$variable [ data$surveyperiod_year == 2008 & data$age_group == 1 & is.na(data$svariable) == T] <- data_mean$variable_mean [ data_mean$surveyperiod_year == 2008 & data_mean$age_group == 1]
但是结果不对,R不是把variable中的NA进行一一赋值,而是全部赋值了,并且赋值也不是按同样的year和age-group,而是按同行进行的。
请教各位老师,我应该怎么做?谢谢!!!