r - 处理 "accounting"格式的负数

标签 r finance negative-number

我有数据集,负值用括号括起来,即 (10)==-10 ,它是 csv 格式,我该如何处理它以便 R 解释 (10)-10 ?谢谢你。

更新
我知道我可以通过替换 ( 来解决这个问题如 - , 删除 ) ,并使用 as.numeric之后,但有没有更优雅的方法来解决这个问题?

最佳答案

如果您为会计格式创建“as.acntngFmt”方法,您可以阅读(或者可能使用 colClasses("acnt") 使用文本连接重新阅读)。

 setClass("acntngFmt")
 # [1] "acntngFmt"
 setAs("character", "acntngFmt",
    function(from) as.numeric( gsub("\\)", "", gsub("\\(", "-", from))))

  Input <- "A, B, C
  (1.76), 1%, 3.50€
  2.00, 2%, 4.77€
  3.000, 3% , €5.68"

   DF <- read.csv(textConnection(Input), header = TRUE,
     colClasses = c("acntngFmt", "character", "character"))
   str(DF)
'data.frame':   3 obs. of  3 variables:
 $ A: num  -1.76 2 3
 $ B: chr  "1%" "2%" "3%"
 $ C: chr  "3.50€" "4.77€" "€5.68"

关于r - 处理 "accounting"格式的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5068705/

相关文章:

r - 带对数刻度的条形图

api - 是否有全局股市实时报价应用程序编程接口(interface) (API)?

r - 任何可用于从特定日期的不均匀付款中计算 IRR 的包?

c - 我的 fscanf 输出一个很大的负数

c - 为什么-1在内部表示为全1

r - dplyr `left_join()` 不能使用字符对象作为 LHS 变量

R 绘图 : Corrupted/missing characters for devices other than pdf

使用 .SD 时的 R data.table 慢聚合

python - numpy 的 irr 函数的复杂度是多少?

java - 保证方法不能使用负数的更优雅的方式?