【问题标题】:Easiest way to extract numbers from currency amounts in different formats on R?从R上不同格式的货币金额中提取数字的最简单方法?
【发布时间】:2018-05-02 06:09:51
【问题描述】:

我有一个数据集,其中包含我想要操作的“价值(以百万美元计)”列。条目是不同格式的字符串 - 带有一个美元符号,后跟一个 M,例如“130 万美元”或后面跟着一个 K,例如“$450K”,或者我已经转换成正确的数字条目(例如 40 表示 4000 万美元)。

我想:去掉 $ 并只提取每行的数值,以百万为单位。

可能会根据包含 M 或 K 的值查看某种列拆分器,其“ifelse”类似于: ifelse(PL$'VALUE (M)' contains M, extract.numeric from PL$'VALUE ( M)', PL$'值 (M)' * 10^-3).

虽然还没有完全弄清楚在 R 上执行此操作的最简单方法。帮助将不胜感激!

【问题讨论】:

标签: r string if-statement dataset alphanumeric


【解决方案1】:

您可以使用gsubfn 指定如何将货币与数字匹配。

x <- c("$1.3M", "$450K")

library(gsubfn)
as.numeric(
 gsubfn( "\\D",  list( "$"="", "M" = "e6", "K" = "e3"), x)
)
#1300000  450000

【讨论】:

    猜你喜欢
    • 2011-11-26
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多