r - 错误整数溢出 - 在gapminder数据集中使用 sum(as.numeric(.))[1] NA

标签 r sum integer

我正在使用gapminder数据集,当尝试对总体进行求和时,出现一个整数变量,出现错误

库(gapminder)

gapminder %>%
        group_by(year) %>% 
        summarise(totalPop = sum(pop))

显示 NA 结果

那么,如果尝试

mean(gapminder$pop)
[1] 29601212 # ok, as expected

但是如果

sum(gapminder$pop)
integer overflow - use sum(as.numeric(.))[1] NA

我读了What is integer overflow in R and how can it happen?

所以,我尝试了

sum(gapminder$pop / 1)
[1] 50440465801

有什么解释为什么 sum 不起作用,但 sum/1 起作用?

简而言之:为什么?

gapminder %>%
    group_by(year) %>% 
    summarise(totalPop = sum(pop))

enter image description here

但是

gapminder %>%
    group_by(year) %>% 
    summarise(totalPop = sum(pop/1))

enter image description here

最佳答案

除以 1 会将其强制为数字。

library(gapminder)
class(sum(gapminder$pop))
[1] "integer"
Warning message:
In sum(gapminder$pop) : integer overflow - use sum(as.numeric(.))

class(sum(gapminder$pop/1))
[1] "numeric"

关于r - 错误整数溢出 - 在gapminder数据集中使用 sum(as.numeric(.))[1] NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47731758/

相关文章:

r - R中非常快速的字符串模糊匹配

r - 意外结果 : microbenchmark

sql - 具有最大限制的运行总计

mysql:在一个语句中选择和求和

apache - pig apache中列的总和

python - 当由 '..' Python 分隔时,将两个整数附加到列表

r - 如何使用 OpenCPU 通过 HTTP 下载由 rmarkdown 生成的 pdf

r - 面标签字体大小

c++ - 我不明白C++指针算法

java - Java 中加密和解密文本文件的 key