【问题标题】:Is there any way in R which can convert the following text currency format in numeric format?R中是否有任何方法可以将以下文本货币格式转换为数字格式?
【发布时间】:2020-10-23 19:30:58
【问题描述】:

如何转换 - 这个

7k、10k、25.5k

到这里

$7,000 $10,000 $25,500

在 R 中?任何帮助,将不胜感激。 谢谢

【问题讨论】:

    标签: r formatting currency


    【解决方案1】:

    我承认这可能不是最简洁的方法,但它是我能想到的最简单的方法。不过,它使用scales 包。

    这就是我所做的:

    library(scales)
    
    kform <- c("7k", "10k", "25.5k")
    
    dol <- dollar(1000*as.numeric(gsub("k", "", kform)))
    

    它按照你想要的方式制作了一个矢量:

    > dol
    [1] "$7,000"  "$10,000" "$25,500"
    

    编辑:我删除了旧的编辑,因为我提到的另一种方式实际上由于最后一个数字中的小数位而不起作用。

    【讨论】:

      【解决方案2】:

      这行得通吗:

      > v <- c('7k','10k','25.5k')
      > v
      [1] "7k"    "10k"   "25.5k"
      > paste0('$',as.numeric(gsub('k$','',v)) * 1000)
      [1] "$7000"  "$10000" "$25500"
      > 
      

      【讨论】:

      • 如果你有一个连续的字符串text = "7k,10k,25.5k"你首先需要这个转换->v = unlist(strsplit(text, ","))
      • 这工作正常,但在数据集中,相同的逻辑不适用。结果显示了所有的NA。感谢您的帮助
      【解决方案3】:

      其他响应有效,但 scales 为当前金额提供了很好的数字格式

      y <- gsub( "[.]", "", "7k")
      scales::dollar(  as.numeric( gsub( "k", "000", y) ) )
      

      【讨论】:

      • 您的解决方案似乎不适用于scales::dollar( as.numeric( gsub( "k", "000", "25.5k") ) )
      • 如果我在数据集上使用它,我得到的只是 NA。感谢您的帮助
      猜你喜欢
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多