如何使用R清除具有双引号的双引号的CSV

时间:2017-07-04 13:50:51

标签: r csv

下面是我正在使用R读取的csv行。但是没有在列中分隔所有值,因为我在数据集中使用逗号和反转逗号。

数据:“18452”,“xx,yy& zz”Charles W“,”xxxx“

Desire Data Frame : 
        Col A -> 18452
        Col B -> xx, yy & zz "Charles W
        Col C -> "xxxx"

OR
    Col A -> 18452
    Col B -> xx, yy & zz Charles W
    Col C -> "xxxx"

Any one will work.

1 个答案:

答案 0 :(得分:1)

假设你的意思是xxxx而不是"xxxx"作为最后一列的输出,用{{","替换每次出现的|(即每次出现双引号,逗号,双引号) 1}}并删除每行开头和结尾的任何双引号。最后,使用read.table

阅读
read.table(text = gsub('^"|"$', "", gsub('","', '|', Data)), sep = "|", quote = "")

,并提供:

     V1                     V2   V3
1 18452 xx, yy & zz "Charles W xxxx

上述的一种变体是将其表示为magrittr管道:

library(magrittr)

Data %>% 
     gsub(pattern = '^"|"$', replacement = "") %>%
     gsub(pattern = '","', replacement = '|') %>%
     read.table(text = ., sep = "|", quote = "")

注意:可重复形式的输入是:

Data <- '"18452","xx, yy & zz "Charles W","xxxx"'