我是 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?
我该如何解决这个问题?
最佳答案
如果您想查找哪个邮政编码具有最高的 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
关于r - 即使在将我的文件转换为因子后,为什么我的输出给出因子(0)30956 级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55309993/