我需要将精度为2小数点的浮点数的数据帧转换为字符串。但是,as.character在小数部分将零丢弃:
> as.character(1.00)
[1] "1"
> as.character(1.10)
[1] "1.1"
我希望这些数字保持原始格式,即:
> paste0(1, ".00")
[1] "1.00"
> paste0(1, ".10")
[1] "1.10".
目前,我计划运行循环,检查字符串长度,并在整个数据帧中应用paste0(),但对我来说似乎真的很愚蠢。有简单的方法吗?
答案 0 :(得分:2)
我们可以使用sprintf
sprintf("%0.2f", 1.10)
#[1] "1.10"
sprintf("%0.2f", 1.00)
#[1] "1.00"
答案 1 :(得分:1)
我们还可以使用nsmall
参数为2的format函数。
format(1, nsmall = 2)
# [1] "1.00"
format(1.1, nsmall = 2)
# [1] "1.10"