使用函数
round()
对 R 中最后一位数字之前有多个零的数字进行四舍五入时遇到问题。它们在 R 输出中似乎已正确舍入,但是当我使用 readr::write_excel_csv() 将舍入数字导出到 .csv 文件时,它们显示为好像未舍入一样。示例:
a <- c(-0.28866000000000003, 0.28372000000000003)
round(a, digits = 5)
[1] -0.28866 0.28372
.csv 文件中的结果与“a”相同。
有人知道为什么吗?
如果您想设置多个向量的小数位数,并将其转换为 csv 文件中的列,您可以使用以下方法:
#----------
# Load packages
#----------
library(readr)
library(dplyr)
#----------
# Generate exemplary vectors
#----------
a <- c(-0.28866000000000003, 0.28372000000000003)
b <- c(-0.46866000000000003, 0.46372000000000003)
#----------
# Make data.frame from vectors & set decimal options for columns
#----------
df <- data.frame (a, b) %>%
mutate (across(1:2, .fns = function(x) {format(round(x, 5), nsmall = 5)}))
#----------
# Save as csv-file
#----------
write_excel_csv(df, "your_path/df.csv", delim = ";")