将csv中的货币值导入R

时间:2014-04-18 16:22:17

标签: r csv currency

我正在尝试使用“£”和“,”导入带有几列值的csv文件。

例如,数据框如下所示:

channel1  channel2
£100,000  £400,000
£200,000  £500,000
£300,000  £600,000

read.csv()给了我一个错误。在将值读取为字符后,我尝试使用sub / gsub,但它没有正常工作。

您能否建议一种阅读此文件的方法?

1 个答案:

答案 0 :(得分:0)

你真的应该从输入文件中发布几行未编辑的材料。如果你确实有逗号作为分隔符并且在列值中也有逗号,那么它几乎没有希望了。这将引入以逗号分隔的引用值:

 setClass("poundFmt")
 setAs("character", "poundFmt",
     function(from)  as.numeric( gsub(",", "", gsub("£", "", from,fixed=TRUE),fixed=TRUE)))

 dat <- read.table(text= "'channel1', 'chan2'
 '£100,000', '£400,000'
 '£200,000', '£500,000'
 '£300,000', '£600,000'" , sep=",", header=TRUE, colClasses="poundFmt", stringsAsFactors=FALSE)
 str(dat)
#---------------------
'data.frame':   3 obs. of  2 variables:
 $ channel1: num  1e+05 2e+05 3e+05
 $ chan2   : num  4e+05 5e+05 6e+05