这个问题有点棘手,因为首先:涉及3个数据帧。对于2008年,一年级为6年级,但在2010年,一年级为7年级。
第二,我可以使用很多收集和散布在dplyr中执行此操作,但是我想知道是否存在一些简单的方法,在excel中执行此操作非常容易,我想应该有一些简单的方法可以执行此操作也是R。
非常感谢您。
请使用t-1年的data2中的信息填写t年的enrollment_by_grades中的缺失值。首先需要获得数据2的t年与t-1年的比率,然后将该比率乘以enrollment_by_grades的t-1年中的数字,然后预测t年的数目。
请注意,在data2中,它是特定年龄的人口,但在数据3中,它是关于特定年级的入学率。所以我们需要使用data1来连接它们。
非常感谢。
data2 = data.frame('population by age' = seq(3, 24, by = 1),
'2008' = c(145391,
140621,
136150,
131944,
127968,
124209,
120650,
117163,
113674,
110207,
106871,
103659,
100398,
97017,
93584,
90240,
86957,
83783,
80756,
77850,
75003,
72226
),
'2009' = c(148566,
143943,
139367,
135083,
131052,
127237,
123628,
120213,
116826,
113381,
109915,
106574,
103346,
100058,
96644,
93175,
89788,
86455,
83241,
80192,
77279,
74422
),
'2010' = c(152330,
147261,
142555,
138172,
134071,
130214,
126559,
123099,
119825,
116538,
113134,
109669,
106320,
103075,
99760,
96312,
92805,
89372,
85988,
82733,
79661,
76739
),
'2011' = c(156630,
151387,
146491,
141905,
137593,
133545,
129737,
126124,
122678,
119397,
116093,
112666,
109174,
105791,
102505,
99159,
95699,
92193,
88759,
85373,
82123,
79065
))
data1 = data.frame(item = c("Age for primary school","Duration for primary school", "Duration for middle school", "duration for high school"),
'2008' = c(6, 6, 4, 3),
'2009' = c(6, 6, 4, 3),
'2010' = c(7, 5, 4, 3),
'2011' = c(7, 5, 4, 3))
enrollment_by_grades <- data.frame('grade' = seq(1, 15, by = 1),
'2008'= c(218701,
161330,
142190,
NA,
113549,
112030,
NA,
NA,
124359,
NA,
NA,
NA,
161330,
NA,
NA),
'2009' = c(212196,
196398,
155033,
NA,
117611,
108403,
NA,
NA,
NA,
138320,
NA,
NA,
NA,
NA,
NA),
'2010' = c(212512,
NA,
176268,
143699,
123374,
103589,
NA,
197713,
NA,
74404,
72506,
44348,
NA,
NA,
NA),
'2011' = c(218529,
198933,
182182,
159103,
130980,
109439,
NA,
91933,
77973,
74404,
72506,
44348,
38768,
34522,
NA))