Я предложил бы использовать цитату = FALSE в функции print
при работе с символами, которые вы делаете не хочу прилагаться. Поскольку print
также принимает цифру аргумента вы можете пойти в любой стороне:
> print(as.character(x), quote=FALSE)
[1] 1426643216897
> print(x, digits=20)
[1] 1426643216897
Versus:
> print(as.character(x))
[1] "1426643216897"
Там нет длинных целого режим R. Вы должны понимать, что цифры с более чем 9 базовыми 10 цифрами являются, которые «сохраняются как десятичные знаки», т.е. хранятся с абсциссой + мантисса, но кажущееся увеличение целочисленной длины достигается путем печати точного преобразования абсциссы «double» до base-10 без десятичной точки. Обратите внимание на то, что произойдет, если вы явно пытаетесь «магазин как целое»:
> x <- 1426643216897L
Warning message:
non-integer value 1426643216897L qualified with L; using numeric value
Если вам необходимо сохранить номер с большей длиной, чем 53 двоичных цифр могут справиться, вам нужно будет идти с хранением символов, а затем использовать кавычки = FALSE параметр или использовать cat
для вывода:
> cat("test")
test
возможно дубликат [длинного/BigInt/десятичного эквивалентного типа данных в R] (http://stackoverflow.com/questions/2053397/long-bigint-decimal -equivalent-datatype-in-r) – Gregor
Номинированный дубликат был написан до введения «полудоллых целых чисел», поэтому в настоящее время не лучший ответ t o ссылку. Я также думаю, что это больше связано со стороной ввода числового/целочисленного хранилища, и эта фокусируется на выходе. –