I'm trying to format numbers so they have a fixed width introducing leading zeros were needed. Following this this answer to a related question I'm using the formatC
function to achieve this. But I am getting unexpected results.
For instance, this code works as expected:
formatC(2102040015, format = "d", width = 10, flag = "0")
## [1] "2102040015"
formatC(102040015, format = "d", width = 10, flag = "0")
## [1] "0102040015"
But when I try to use the very same approach with these numbers I get the strange result:
formatC(2152040015, format = "d", width = 10, flag = "0")
## Warning message:
## In storage.mode(x) <- "integer" :
## NAs introduced by coercion to integer range
## [1] " NA"
formatC(2522040015, format = "d", width = 10, flag = "0")
## Warning message:
## In storage.mode(x) <- "integer" :
## NAs introduced by coercion to integer range
## [1] " NA"
After some testing, I have come to the conclusion that for every number greater than 2150000000
I get this message and the " NA"
result. I would appreciate if you gave me insights about this behavior. Thank you in advance!