1

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

1=白色 2=黑色 3=本土 4=亚洲 5=A 6=B 7=C 8=D 9=E。我基本上是在尝试消除所有其他种族,只保留白色和黑色作为虚拟变量,其中 White=0 和 Black=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。任何想法,将不胜感激。

4

1 回答 1

0

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

看来这里真正的问题是NA从情节中省略了 s 。只需对数据框进行子集化:

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

进一步阅读:

于 2014-02-21T23:50:50.700 回答