【问题标题】:Recoding race variable with 9 categories to dummy [duplicate]将具有 9 个类别的种族变量重新编码为虚拟 [重复]
【发布时间】:2014-02-21 23:31:14
【问题描述】:

首先请允许我说我是 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。任何想法将不胜感激。

【问题讨论】:

  • 我建议改变这个问题的标题:它似乎真的是关于从图中省略缺失的数据,而不是将一个因素重新编码为一个虚拟变量。更好的标题将对未来的读者更有帮助。
  • 很抱歉让我听起来像是一个阴谋问题。我实际上正在努力从分类变量创建一个虚拟变量,而情节让我意识到了这个问题。

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


【解决方案1】:

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

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

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

进一步阅读:

【讨论】:

  • 感谢您的建议,剧情还不错!我熟悉其他一些具有简单重新编码过程的统计软件包,例如 Stata。这是在 R 中创建虚拟变量的最简单方法吗?我知道拥有一个因子变量是有利的,并且在运行回归模型时不需要额外的工作,但由于某种原因,在 R 中创建假人似乎需要做很多工作。
  • 我没有丰富的经验,但从 recoding data 的 Cookbook-R 页面来看,它看起来相当合理......
猜你喜欢
  • 2022-01-16
  • 1970-01-01
  • 2012-12-19
  • 2015-08-02
  • 2023-03-15
  • 2022-01-23
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多