如何在 R 中对数字进行四舍五入,在最后一位数字之前添加几个零并正确导出到 .csv 文件?

问题描述 投票:0回答:1

使用函数

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”相同。

有人知道为什么吗?

r csv rounding readr
1个回答
0
投票

如果您想设置多个向量的小数位数,并将其转换为 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 = ";")

© www.soinside.com 2019 - 2024. All rights reserved.