【问题标题】:Even after converting my file as factor why does my output give factor(0) 30956 Levels?即使在将我的文件转换为因子之后,为什么我的输出会给出因子(0)30956 级别?
【发布时间】:2019-03-23 02:18:36
【问题描述】:

我是 R 新手,正在研究以下数据集:

我有一个名为 zippopinc 的文件

重复:

head(zippopinc)

  Year         Zip     Total_Population Median_Income   City State
1 1 2017 ZCTA5 00601            17599         11757  Adjuntas    PR
2 2 2017 ZCTA5 00602            39209         16190    Aguada    PR
3 3 2017 ZCTA5 00603            50135         16645 Aguadilla    PR
4 4 2017 ZCTA5 00606             6304         13387   Maricao    PR
5 5 2017 ZCTA5 00610            27590         18741    Anasco    PR
6 6 2017 ZCTA5 00612            62566         17744   Arecibo    PR
  Poptoincomeratio
       1.4968955
       2.4218036
       3.0120156
       0.4709046
       1.4721733
       3.5260370

poptoincomeratio 基本上是 Total_Population/Median_Income

我的目标是找出哪个邮政编码的 Poptoincomeratio 最高:

我的意见:

max(sapply(zippopinc$Poptoincomeratio, max))

输出:

4.454182

所以我尝试了,

zippopinc$Zip[demograph_ratio$Poptoincomeratio == 4.454182]

但这给了我:

factor(0)
30956 Levels

然后我尝试将 zipopinc 转换为一个因素,但出现以下错误:

> as.factor(zippopinc)
Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?

我该如何解决这个问题?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    如果你想找出哪个邮政编码的 Poptoincomeratio 最高:

    zippopinc$Zip[which.max(zippopinc$Poptoincomeratio)]
    

    使用当前方法无法产生任何输出的原因是因为比较浮点值存在一些限制。在这里阅读更多

    即使对于共享示例,我们也可以看到 3.5260370 是 Poptoincomeratio 列中的最大值,但是当我们比较得到的值时

    zippopinc$Poptoincomeratio == 3.5260370
    #[1] FALSE FALSE FALSE FALSE FALSE FALSE
    

    但如果您使用which.max,它会返回最高的Zip

    zippopinc$Zip[which.max(zippopinc$Poptoincomeratio)]
    #[1] 612
    

    【讨论】:

    • 谢谢。这只是一个可重现的例子,而不是整个数据集,这就是为什么你看不到 4.454182 @Ronak Shah。我提到了#Repex。
    • @KidCode 我知道。你能在你的真实数据上运行zippopinc$Zip[which.max(zippopinc$Poptoincomeratio)] 并比较答案吗?
    • 是的,我明白了,并且将您的答案标记为正确。 :) 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 2019-01-06
    • 2016-12-01
    • 2017-09-02
    • 2017-05-14
    • 2014-02-25
    • 1970-01-01
    相关资源
    最近更新 更多