全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
8166 6
2019-11-13
假设说,数据是一个变量加上多个年份year和多个年龄组age-group,这个变量有很多NA空值。我现在已经按year和age-group计算出了该变量的非NA值在不同年份中不同年龄组的均值,是像这样的dataframe:
surveyperiod_yearage_groupmean_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,而是按同行进行的。

请教各位老师,我应该怎么做?谢谢!!!





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-11-13 14:31:25
我的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]


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-11-13 14:51:36
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-11-13 15:10:41
药引子5 发表于 2019-11-13 14:51
谢谢回复!

但是这个代码的结果,是把所有的原值都按year和age group来一一赋值为均值了,不是我希望的只对其中的NA值赋值。如果要做到这样,代码该怎么写呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-11-13 15:26:16
firstshine 发表于 2019-11-13 15:10
谢谢回复!

但是这个代码的结果,是把所有的原值都按year和age group来一一赋值为均值了,不是我希望的 ...
不好意思,理解错了。
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-11-13 19:09:30
药引子5 发表于 2019-11-13 15:26
不好意思,理解错了。
非常非常感谢您!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群