如何gsub转义引号

时间:2017-05-03 11:18:44

标签: r gsub

我已经在我的csv文件中转义了引号,我试图将其删除,以便可以使用fread读取文件。以下是数据中需要修复的其中一行的示例:

[1] "\"549300UIFHFOUTLOYP82\",\"\"Maritime Centre, United Kingdom\"\",\"\",\"N\""

我使用的代码是:

data <- readLines(file)
data <- gsub('([^,])"([^,])', '', data)

这会得到以下结果:

[1] "\"549300UIFHFOUTLOYP82\",aritime Centre, United Kingdo,\"\",\"N\""

我在寻找的是:

[1] "\"549300UIFHFOUTLOYP82\",\"Maritime Centre, United Kingdom\",\"\",\"N\""

有关此代码中出现问题的任何想法吗?

1 个答案:

答案 0 :(得分:0)

围绕值替换双重转义引号,但不替换为空值:

yourString <- string <-  "\"549300UIFHFOUTLOYP82\",\"\"Maritime Centre, United Kingdom\"\",\"\",\"N\""
newString <- gsub("(\"\")(.+?)(\"\")","\"\\2\"", yourString, fixed=FALSE)

这是否正确地读作“英国海事中心”?

textCon <- textConnection(newString)
d <- read.csv(textCon)
str(d)

#'data.frame':  0 obs. of  4 variables:
#$ X549300UIFHFOUTLOYP82          : logi 
#$ Maritime.Centre..United.Kingdom: logi 
#$ X                              : logi 
#$ N                              : logi 

它确实:)