【问题标题】:How do I convert a negative dollar value surrounded by parenthese to numeric? [duplicate]如何将括号括起来的负美元值转换为数字? [复制]
【发布时间】:2019-06-19 17:08:35
【问题描述】:

我有一个df,它有一列,其中负美元值用括号括起来。如何将列转换为正值和负值的数字? parse_number 适用于正数,但不考虑代表负值的括号。

样本 DF

sample <- 
  tibble::tribble(
   ~id, ~dollars,
    36, "($0.3)",
  1890,   "$3.6",
  3298, "($0.1)",
  3448,   "$0.2",
  4616,   "$0.0",
  5409, "($0.1)",
  5751, "($0.1)",
  5942,   "$0.1",
  6316,   "$0.0",
  6589,   "$0.1"
  )

【问题讨论】:

    标签: r readr


    【解决方案1】:

    以下内容将按照问题的要求进行。

    as.numeric(sub("\\(", "-", gsub("\\)|\\$","", sample$dollars)))
    # [1] -0.3  3.6 -0.1  0.2  0.0 -0.1 -0.1  0.1  0.0  0.1
    

    可读性较差但更简单,只有一个*sub

    as.numeric(gsub("\\(*\\$([[:digit:].]+)\\)*", "-\\1", sample$dollars))
    # [1] -0.3  3.6 -0.1  0.2  0.0 -0.1 -0.1  0.1  0.0  0.1
    

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 2021-09-21
      • 2011-08-14
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多