在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
我想在所有列的数字之间添加一个逗号。
我的数据是百分比,但它是这样传递的:
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