gpt4 book ai didi

r - 如何在 R 中将 450M 转换为 450,000,000

转载 作者:行者123 更新时间:2023-12-04 02:16:16 27 4
gpt4 key购买 nike

我目前正在尝试将“450B”(其中 B 代表十亿)形式的字符串转换为 450,000,000,000。与“200M”形式的字符串类似,我试图将它们转换为数字形式; 200,000,000。

最佳答案

一种选择是使用 gsubfn 将 'B'、'M' 替换为 '1e9'、'1e6',循环遍历值 (sapply(..) 并使用 eval(parse( 获取数字输出。如果我们需要 format OP 帖子中显示的输出,我们可以使用 formatC

library(gsubfn)
r1 <- unname(sapply(gsubfn('\\D+', list(B= '*1e9', M= '*1e6'), v1),
function(x) eval(parse(text=x))))
formatC(r1, format='f', digits=0, big.mark=',')
#[1] "450,000,000,000" "200,000,000" "220,000,000,000" "20,000,000"

或者不使用任何包,我们可以使用gsub/sub替换数字和非数字部分,通过匹配和相乘将非数字元素替换为'1e6','1e9'与数字部分。

r2 <- unname(c(B=1e9, M= 1e6)[gsub('\\d+', '', v1)]* as.numeric(sub('\\D+', '', v1)))

formatC(r2, format='f', digits=0, big.mark=',')
#[1] "450,000,000,000" "200,000,000" "220,000,000,000" "20,000,000"

数据

v1 <- c('450B', '200M', '220B', '20M')

关于r - 如何在 R 中将 450M 转换为 450,000,000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33522096/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com