Cha*_*ase 14
了解您在评论中所说的内容,您可以通过指定colClassesin 来直接将文本导入为字符read.table().例如:
num <- "1665535004661"
dat.char <- read.table(text = num, colClasses="character")
str(dat.char)
#------
'data.frame': 1 obs. of 1 variable:
$ V1: chr "1665535004661"
dat.char
#------
V1
1 1665535004661
Run Code Online (Sandbox Code Playgroud)
或者(以及其他用途),您可以在digits下面指定变量options().默认值为7位,可接受范围为1-22.要明确的是,设置此选项绝不会更改或更改基础数据,它仅控制打印时在屏幕上显示的方式.从帮助页面?options:
controls the number of digits to print when printing numeric values. It is a suggestion only.
Valid values are 1...22 with default 7. See the note in print.default about values greater than
15.
Run Code Online (Sandbox Code Playgroud)
举例说明:
options(digits = 7)
dat<- read.table(text = num)
dat
#------
V1
1 1.665535e+12
options(digits = 22)
dat
#------
V1
1 1665535004661
Run Code Online (Sandbox Code Playgroud)
要完全充实这一点并考虑到设置全局设置的情况并不可取,您可以直接指定数字作为参数print(foo, digits = bar).你可以在下面阅读更多相关信息?print.default.约翰在他的回答中描述了这一点,所以应该归功于他,以阐明这种细微差别.
Joh*_*ohn 14
它不是"1.67E + 12格式",它不会完全使用默认值打印.R正好读它,整个数字就在那里.
x <- 1665535004661
> x
[1] 1.665535e+12
> print(x, digits = 16)
[1] 1665535004661
Run Code Online (Sandbox Code Playgroud)
看,数字一直存在.除非你有很多数字,否则它们不会迷路.对引入的内容进行排序将正常工作,您可以使用digits选项显式调用print()来查看data.frame,而不是通过键入名称来隐式查看.
roc*_*wap 10
尝试使用colClasses ="character"
read.csv("file.csv", colClasses = "character")
Run Code Online (Sandbox Code Playgroud)
http://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html
看看这个链接.
从?is.integer页面:
“请注意,当前R的实现将32位整数用于整数矢量,因此可表示整数的范围被限制为大约+/- 2 * 10 ^ 9?
1665535004661L> 2 * 10 ^ 9 [1]是
您需要包Rmpfr。
library(Rmpfr)
x <- mpfr(15, precBits= 1024)
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以在执行时使用数字参数
read.csv。例如:
read.csv(x, sep = ";", numerals = c("no.loss")) Where x is your data.
Run Code Online (Sandbox Code Playgroud)
这会保留长整数的值,并且在导入数据时不会扰乱它们的表示。
| 归档时间: |
|
| 查看次数: |
21953 次 |
| 最近记录: |