【发布时间】:2018-03-14 21:36:57
【问题描述】:
我在创建具有另一个变量的选定级别的新变量时遇到问题。数据集是gss,变量是class,有5个级别“Lower Class”“Working Class”“Middle Class”“Upper Class”“No Class”和NA
如果我跑,
gss %>%
select(class) %>%
str()
它给了我
'data.frame': 57061 obs. of 1 variable:
$ class: Factor w/ 5 levels "Lower Class",..: 3 3 2 3 2 3 3 2 2 2 ...
由于我只对那些指定他们经济等级的人感兴趣,我想去掉“No Class”级别和NA。我不知道有什么更好的方法,所以我做了
gss <- gss %>%
mutate(filteredclass = ifelse(class == "Lower Class", "Lower Class",
ifelse(class == "Working Class", "Working Class", ifelse(class == "Middle
Class", "Middle Class", ifelse(class == "Upper Class", "Upper Class", NA)))))
然后,我试着看看它是否有效,所以我跑了:
with (gss, table(filteredclass))
然后给了我如下混合顺序:
filteredclass
Lower Class Middle Class Upper Class Working Class
3147 24289 1741 24458
我希望新变量filteredclass 显示为与变量'class' 相同的顺序。因为如果我对变量“类”做同样的事情,它会给我:
with (gss, table(class))
class
Lower Class Working Class Middle Class Upper Class
3147 24458 24289 1741
No Class
1
有什么办法可以解决这个问题吗?或者,有什么方法可以在不通过上面执行的 mutate 命令的情况下取出 No Class 级别?
提前感谢您的帮助!
【问题讨论】:
-
请
dput(gss)并在您的问题中分享输出。如果 data.frame 很大,您只能共享大约 20 行。 -
您想删除带有 'No Class' 和 NA 的行吗?你说的“取出”是什么意思?另外,请添加 dput。