I was playing with the gapminder dataset, and when trying to sum the population, an integer variable, an error
library(gapminder)
gapminder %>%
group_by(year) %>%
summarise(totalPop = sum(pop))
Shows NA as results
Then, if try
mean(gapminder$pop)
[1] 29601212 # ok, as expected
but if
sum(gapminder$pop)
integer overflow - use sum(as.numeric(.))[1] NA
I read the What is integer overflow in R and how can it happen?
so, I tried
sum(gapminder$pop / 1)
[1] 50440465801
Any explanation why sum doesn't work, but sum / 1 did?
In brief: why?
gapminder %>%
group_by(year) %>%
summarise(totalPop = sum(pop))
but
gapminder %>%
group_by(year) %>%
summarise(totalPop = sum(pop/1))