我正在使用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))
但是
gapminder %>%
group_by(year) %>%
summarise(totalPop = sum(pop/1))
最佳答案
除以 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/