如何指定写入R中文件的数值的小数位数?

Posted

技术标签:

【中文标题】如何指定写入R中文件的数值的小数位数?【英文标题】:How to specify the number of decimal places for numeric values written to a file in R? 【发布时间】:2016-08-06 04:26:48 【问题描述】:

我要取这个数据框

df <- data.frame(col1 = c(1.224, 1.3), col2 = c(0.8011, 1.90))

并将其写入文件,以便每个数值精确显示两位小数。我尝试了Controlling digits in R in write.csv中给出的解决方案,但是当我使用时

write.csv(format(df, digits = 2, nsmall = 2), "./testout.csv")

我文件中的数值已转换为字符串。于是我尝试了Formatting Decimal places in R给出的解决方案,如下:

write.csv(format(round(df, 2), nsmall = 2), "./testout.csv")

但是,文件再次显示我的数值已转换为字符串。

如何将此 data.frame 写入文件,以便将数值写入为恰好有两位小数的数值?

【问题讨论】:

【参考方案1】:

您可以将quote=FALSE 添加到您的write.csv 通话中。

例如:

df[] <- lapply(df, sprintf, fmt='%.02f')
write.csv(df, f <- tempfile(), row.names=FALSE, quote=FALSE)
file.show(f)

【讨论】:

以上是关于如何指定写入R中文件的数值的小数位数?的主要内容,如果未能解决你的问题,请参考以下文章

无法理解 DBMS 中数值数据类型的精度和小数位数

R语言:小数点位数的设置

常用函数——数据类型转换函数

vb中取值(小数点后2位)的函数是啥?

toFixed():四舍五入为指定小数位数的数字

vb保留小数点后2位怎么编写?