在R中的两位数字后添加一个逗号?

Add a comma after two digits in R?

我想在所有列的数字之间添加一个逗号。

我的数据是百分比,但它是这样传递的:

Percentage

3456
4444
325

预期值:

Percentage

34,56
44,44
32,5


当我使用 gsub o sub 时,我无法将我的列保存为数字。我用“.”没关系。或 "," 结果为字符。

谢谢!

我们可以利用 formattable 中的 comma,这将修改 format,同时保持 numeric 原样

df1$Percentage <- formattable::comma(df1$Percentage, big.interval = 2, digits = 0)

-正在检查

> df1
  Percentage
1      34,56
2      44,44
3       3,25
> str(df1)
'data.frame':   3 obs. of  1 variable:
 $ Percentage: 'formattable' int  34,56 44,44 3,25
  ..- attr(*, "formattable")=List of 4
  .. ..$ formatter: chr "formatC"
  .. ..$ format   :List of 4
  .. .. ..$ format      : chr "f"
  .. .. ..$ big.mark    : chr ","
  .. .. ..$ digits      : num 0
  .. .. ..$ big.interval: num 2
  .. ..$ preproc  : NULL
  .. ..$ postproc : NULL

也可以进行计算,因为它是一个数字列

> df1$Percentage * 100
[1] 34,56,00 44,44,00 3,25,00 

数据

df1 <- structure(list(Percentage = c(3456L, 4444L, 325L)), class = "data.frame", row.names = c(NA, 
-3L))

我们可以用另一种方式来实现:

library(stringr)
library(dplyr)

x <- c("3333", "4223", "34215")

P1 <- x %>%
        str_replace_all("(^\d{2})", "\1.") %>%
        as.double() %>%
        data.frame() 

colnames()[1] <- "Percentage"

结果:

> P1
  Percentage
1     33.330
2     42.230
3     34.215