我正在尝试使用“£”和“,”导入带有几列值的csv文件。
例如,数据框如下所示:
channel1 channel2
£100,000 £400,000
£200,000 £500,000
£300,000 £600,000
read.csv()
给了我一个错误。在将值读取为字符后,我尝试使用sub
/ gsub
,但它没有正常工作。
您能否建议一种阅读此文件的方法?
答案 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