write.csv精度R

write.csv精度R,r,csv,rounding,R,Csv,Rounding,我处理的是非常精确的数字(最大位数) 我注意到R中的write.csv(x)有时会将数字四舍五入 有人注意到这样的事情吗? 默认保存的位数是多少?如文档中所述 几乎在所有情况下,数字量的转换都受控制 通过选项“scipen”(请参阅options),但使用内部等效项 共位=15。要进行更精细的控制,请使用格式生成字符 矩阵/数据帧,并调用write.table 因此,简单的解决方案是更改选项,即 options(digits = DESIRED_VALUE) 定制的解决方案是使用格式将变量转换

我处理的是非常精确的数字(最大位数)

我注意到R中的
write.csv(x)
有时会将数字四舍五入

有人注意到这样的事情吗?
默认保存的位数是多少?

如文档中所述

几乎在所有情况下,数字量的转换都受控制 通过选项“
scipen
”(请参阅
options
),但使用内部等效项 共
位=15
。要进行更精细的控制,请使用
格式
生成字符 矩阵/数据帧,并调用
write.table

因此,简单的解决方案是更改
选项
,即

options(digits = DESIRED_VALUE)
定制的解决方案是使用
格式将变量转换为字符类型,例如

dat <- mtcars
dat$wt <- format(dat$wt, digits = 20)

所以四舍五入的值并没有什么不好的,因为您可能只需要精确到小数位数。此外,您的测量也会受到测量误差的影响,因此精度可能是虚幻的。

这个问题是面向编程的,因此我投票将其迁移到StackexChange.com,因为这里没有主题。请看这里:这里:
format(2.620, digits = 20)
## [1] "2.6200000000000001066"