使用R将动物园对象写入csv文件时如何降低小数精度?

Ant*_*ony 0 csv r zoo

使用 write.zoo() 将动物园对象写入 CSV 文件时,我实际上希望将十进制精度从默认值 14 降低到 3。但是,即使在 options() 中设置了 scipen 和数字,我也没有能够降低输出的精度。

下面是一个示例代码来说明这个问题。

blah <- zoo(cbind(c(1.590833333333335, NA), c(NA, 21.590833333333337)))
index(blah) <- c("Dec 1985", "Dec 1986")
colnames(blah) <- c("FooHeader", "BarHeader")
options(scipen = 3, digits = 3)
write.zoo(blah, file = "blah.csv", sep = ",")
Run Code Online (Sandbox Code Playgroud)

如果我打开blah.csv文件,我会看到

"Index","FooHeader","BarHeader"
"Dec 1985",1.59083333333334,NA
"Dec 1986",NA,21.5908333333333
Run Code Online (Sandbox Code Playgroud)

但我真正想看到的是

"Index","FooHeader","BarHeader"
"Dec 1985",1.591,NA
"Dec 1986",NA,21.591
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能做到这一点?提前致谢!

注意:我知道通过降低精度,如果我再次将数据读入 R,我仍然会失去精度。没关系。我可以忍受这一点。

G. *_*eck 6

尝试这个

write.zoo(round(blah, 3), sep = ",")
## "Index","FooHeader","BarHeader"
## "Dec 1985",1.591,NA
## "Dec 1986",NA,21.591
Run Code Online (Sandbox Code Playgroud)