如何在 R 中格式化字符向量中的小数位数

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

R中以下字符向量中的小数位是否可以更改为2?

矢量

x = c("0.857138", "1", "0.5", "not limiting", "0.1", "0.233333333333333", 
      "1", "0.333333333333333", "1", "1", "0.1", "0.65", "1", "1", 
      "0.6", "0.25", "1", "1", "0.25", "0.6", "1", "1", "0.6")
r vector
1个回答
0
投票

基于 StackOverflow 线程here,您可以使用

format(round(as.numeric(x), 2), nsmall = 2)
获得所需的输出,它返回以下结果:

 [1] "0.86" "1.00" "0.50" "  NA" "0.10" "0.23" "1.00" "0.33" "1.00" "1.00" "0.10"
[12] "0.65" "1.00" "1.00" "0.60" "0.25" "1.00" "1.00" "0.25" "0.60" "1.00" "1.00"
[23] "0.60"

请注意,输出仍然是字符向量,因为输入是字符向量,因此您不能用它进行算术运算。我必须将你的向量

x
强制转换为
as.numeric()
的数字格式,这会强制你的值“不限制”为“NA”,因为它不能强制为数字。正如 @JayBee 所说,如果您不需要保留此值,它将允许您从数字向量而不是字符向量开始。

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