在R中的数字后面添加一个点

时间:2017-11-15 13:22:21

标签: r format decimal

我有以下列表c(1.23,1,0.9)在控制台[1] 1.23 1 0.9中显示,我想将其转换为: [1] 1.23,1.,.9。 正如你所看到的那样,第一个数字保持不变,但是1变为1.而0.9变为.9。

是否有一种优雅的方式来获得此格式?

问候

2 个答案:

答案 0 :(得分:5)

这是打印或表示的问题。

您可能想要做的是将其转换为角色:

res <- as.character(c(1.23,1,0.9))

然后使用regexp:

res <- gsub("^0", "", res) # delete leading 0s
res[!grepl("\\.", res)] <- paste0(res[!grepl("\\.", res)], ".") # Add a "." at the end where there are no 0s

结果是:

res
[1] "1.23" "1."   ".9" 

答案 1 :(得分:0)

以下是使用sprintfgsub的方法:

gsub("0", "", sprintf("%.2f", x))
[1] "1.23" "1."   ".9"

要添加逗号,您可以将其放在paste函数中。

paste(gsub("0", "", sprintf("%.2f", x)), collapse=",")
[1] "1.23,1.,.9"