将9种类别的种族变量重新编码为虚拟

时间:2014-02-21 23:31:14

标签: r missing-data na categorical-data dummy-data

请允许我在前言中说我是R的新手。我清理了一些收入和租金变量,现在我正在尝试将我的种族变量从9个类别重新编码为2.原始变量编码如下:

1 =白色2 =黑色3 =原生4 =亚洲5 = A 6 = B 7 = C 8 = D 9 = E.我基本上试图消除所有其他种族,只保留白色和黑色作为虚拟变量,其中白色= 0,黑色= 1。这是代码:

library(foreign)
library(ggplot2)
df<-read.dta("acs2010.dta")
View(df)
attach(df)
summary(df)

inctot[inctot==9999999]<-NA
inctot[inctot<=0]<-NA
summary(inctot)
incomesq<-(inctot)^2

rent[rent==0]<-NA
summary(rent)

levels(race)[1]<-"White"
levels(race)[2]<-"Black"
levels(race)[3:9]<-NA
levels(race)

ggplot(data=df,aes(x=race))+geom_bar()
view(df)

操纵关卡会给我留下“白色”和“黑色”,但是当我绘制它时,它也会显示NA。我不知道如何摆脱因子变量中的NA。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

问题中重新编码race因子的方法看起来不错。

这里的真正问题似乎是忽略了情节中的NA s。只是数据框的子集:

ggplot(data = df[!is.na(df$race),] , aes(x=race)) + geom_bar()

进一步阅读: