R中的货币转换
Currency conversion in R
我正在尝试将货币值从因子转换为数字。格式为 €110.5M €565K 我能够去掉 € 符号、M 和 K 字母,但我还需要进行转换以显示 110.5M=110.500.000
和 565K=565.000
。有什么方法可以推荐吗?
value<-as.numeric(gsub("[€MK]", "", as.character(strength[1:18207,1])))
待转换数据
€110.5M €565K
€77M €405K
€118.5M €290K
一个选项是gsubfn
library(gsubfn)
out <- unname(sapply(gsubfn("M|K", list(M = "* 1e6", K = "* 1e3"),
sub("€", "", str1)), function(x) eval(parse(text = x))))
out
#[1] 110500000 565000 77000000 405000 118500000 290000
scales::dollar_format(prefix = "", big.mark = ".")(out)
#[1] "110.500.000" "565.000" "77.000.000" "405.000"
#[4] "118.500.000" "290.000"
数据
str1 <- c("€110.5M", "€565K", "€77M", "€405K", "€118.5M", "€290K")
这是一个类似的基础 R 选项,使用 sub
:
input <- c("€110.5M", "€565K")
exp <- sapply(input, function(x) sub("€(\d+(?:\.\d+)?)K", "\1*1000",
sub("€(\d+(?:\.\d+)?)M", "\1*1000000", x)))
exp
sapply(exp, function(x) eval(parse(text=x)))
€110.5M €565K
"110.5*1000000" "565*1000"
€110.5M €565K
110500000 565000
我正在尝试将货币值从因子转换为数字。格式为 €110.5M €565K 我能够去掉 € 符号、M 和 K 字母,但我还需要进行转换以显示 110.5M=110.500.000
和 565K=565.000
。有什么方法可以推荐吗?
value<-as.numeric(gsub("[€MK]", "", as.character(strength[1:18207,1])))
待转换数据
€110.5M €565K
€77M €405K
€118.5M €290K
一个选项是gsubfn
library(gsubfn)
out <- unname(sapply(gsubfn("M|K", list(M = "* 1e6", K = "* 1e3"),
sub("€", "", str1)), function(x) eval(parse(text = x))))
out
#[1] 110500000 565000 77000000 405000 118500000 290000
scales::dollar_format(prefix = "", big.mark = ".")(out)
#[1] "110.500.000" "565.000" "77.000.000" "405.000"
#[4] "118.500.000" "290.000"
数据
str1 <- c("€110.5M", "€565K", "€77M", "€405K", "€118.5M", "€290K")
这是一个类似的基础 R 选项,使用 sub
:
input <- c("€110.5M", "€565K")
exp <- sapply(input, function(x) sub("€(\d+(?:\.\d+)?)K", "\1*1000",
sub("€(\d+(?:\.\d+)?)M", "\1*1000000", x)))
exp
sapply(exp, function(x) eval(parse(text=x)))
€110.5M €565K
"110.5*1000000" "565*1000"
€110.5M €565K
110500000 565000