下面是我正在使用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.
答案 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"'