gpt4 book ai didi

r - 从 CSV 解析货币值,转换为百万和十亿的数字后缀

转载 作者:行者123 更新时间:2023-12-04 15:33:15 25 4
gpt4 key购买 nike

我很好奇 R 中是否有任何开箱即用的函数可以处理这个问题。

我有一个 CSV 文件,我正在使用 read.csv 将其读入数据框。 CSV 中的一列包含以下格式的货币值

Currency
--------
$1.2M
$3.1B
N/A

我想将这些转换为可以对其进行计算的更可用的数字,因此它看起来像这样:
Currency
----------
1200000
3100000000
NA

我最初的想法是根据包含 *M、*B 或 N/A 的行以某种方式将数据帧分为 3 个部分。然后用gsub替换$和M/B,然后将剩下的数乘以1000000或1000000000,最后将3个子集重新加入1个数据帧。

但是我很好奇是否有一种更简单的方法来处理 R 中的这种转换。

最佳答案

我们可以使用 gsubfn 将 'B'、'M' 替换为 'e+9'、'e+6' 并转换为 numeric ( as.numeric )。

is.na(v1) <- v1=='N/A'
options(scipen=999)
library(gsubfn)
as.numeric(gsubfn('([A-Z]|\\$)', list(B='e+9', M='e+6',"$"=""),v1))
#[1] 1200000 3100000000 NA
编辑:根据@nicola 的建议修改
数据
v1 <- c('$1.2M', '$3.1B', 'N/A')

关于r - 从 CSV 解析货币值,转换为百万和十亿的数字后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33773080/

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