你如何格式化向量中的数字,而没有额外的空格和数字周围的引号

时间:2013-07-23 21:13:56

标签: r

我有这样的矢量:

dput(yy)
c(97.1433841613379, 1102.1208262592, 32.5418522860492, 217.694780086999, 
1306.31759309228, 202.18335752298, 22.8301149425287)

我只需保留2个小数点,我这样做是为了摆脱额外的小数点:

yy<-format(yy, digits=1)

当我输入(yy)时,我在我的值前面得到了额外的空格:

dput(yy)
c("  97.14", "1102.12", "  32.54", " 217.69", "1306.32", " 202.18", 
"  22.83")

是否有一种简单的方法来格式化数字而不在数字周围插入额外的空格和引号?

2 个答案:

答案 0 :(得分:4)

您可以使用?sprintf(它使用与C中的sprintf相同的语法):

x <- c(97.1433841613379, 1102.1208262592, 32.5418522860492, 217.694780086999, 1306.31759309228, 202.18335752298, 22.8301149425287)
sprintf("%.2f", x)
# [1] "97.14"   "1102.12" "32.54"   "217.69"  "1306.32" "202.18"  "22.83"

编辑: 或者您是否在寻找?round

round(x, digits=2)
# [1]   97.14 1102.12   32.54  217.69 1306.32  202.18   22.83

答案 1 :(得分:0)

如果您想将所有内容保留为数字,请使用round(x, 2),但这会将1.5000002更改为1.5而非1.50,而不是format {1}}或sprintf