是否可以在不丢失精度的情况下编写以下向量? write.table文档说它的内部等价于' digits = 15'看起来scipen被忽略了。
a <- c(0.1111111111111123333, 0.11111111111111244, 0.1111111111111121111111)
options(scipen=22)
write.table(a, file="del.txt")
答案 0 :(得分:1)
您可以使用format
功能控制输出,然后再将其写入表格。例如,以下代码将您的矢量输出格式化为20位。
write.table(format(a, digits=20), file="del.txt")
编辑:我尝试了一些事情,似乎无法让R更改号码。这是我尝试过的。
print(c(0.1111111111111123333, 0.11111111111111244,
0.1111111111111121111111), digits=18)
[1] 0.111111111111112340 0.111111111111112437 0.111111111111112118
不好。
a <- format(c(0.1111111111111123333, 0.11111111111111244,
0.1111111111111121111111), digits=19)
[1]&#34; 0.1111111111111123401&#34; &#34; 0.1111111111111124372&#34; &#34; 0.1111111111111121180&#34;
不好。
write.table(sprintf("%.100f", a), file='del.txt')
不好。
我一直在寻找答案,但希望其他人会介入并清理它。