在R中使用NA管理分类变量

时间:2016-11-08 14:23:27

标签: r na dummy-variable

我正在使用全国调查来运行我的回归。 df基于地形和经济变量,有时R值缺失值为" NA"。

我有分类变量,但有时我发现问题:例如,我有一个变量q,如果个人是雇员,则取值1;如果他/她是工人但不是雇员,则为2;如果此人没有,则为3工作。

我也知道员工可以在私营或公共部门工作;问题是,有时我不知道该员工是私营企业还是公共部门(我有NA)。

如果员工在私营或公共部门,我想构建一个分类变量:

df$q2 <- ifelse(d.d$q=="3",1,
ifelse(d.d$q=="2",2,
ifelse(d.d$q=="1" & d.d$priv=="1",3,
ifelse(d.d$q=="1" & d.d$pubbl=="1",4,
0))))

df$q2 <- as.factor(d.d$q2)
levels(d.d$q2)
"0","1","2","3","4"

我支持的0级是指员工,我不了解工作部门(私人或公共)。

我想要的输出是只获得1,2,3,4级和0级;我试图在网上搜索,但找到的唯一解决方案是放弃观察。

还有一个问题:如果我从变量q2创建四个虚拟对象:

d.d$not_worker <- ifelse(d.d$q2=="1",1,0)
d.d$public_employee <- ifelse(d.d$q2=="4",1,0)
d.d$private_employee <- ifelse(d.d$q2=="3",1,0)
d.d$worker_not_employee <- ifelse(d.d$q2=="2",1,0)

然后使用以下命令对所有这些因素进行分解:as.factor() 然后运行一个回归,省略变量d.d $ not_worker可能是一个消息?

d.d$not_worker <- as.factor(d.d$not_worker)
d.d$public_employee <- as.factor(d.d$public_employee)
d.d$private_employee <- as.factor(d.d$private_employee)
d.d$worker_not_employee <- as.factor(d.d$worker_not_employee)

eq1 <- lm(PIP ~ public_employee + private_employee + worker_not_employee, data=d.d)

提前谢谢

0 个答案:

没有答案