2017-07-04 33 views
1

以下はRを使用して読んでいるcsv行ですが、データセットにコンマと逆コンマを入れているため、二重引用符で囲まれた二重引用符で囲まれたCSVをクリーンアップする方法R

データ: "18452"、 "XX、YY & ZZ "チャールズ・W"、" XXXX」

最後の列の出力は ","の各発生を置き換えるよう、あなたが xxxxなく "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

(すなわち、二重引用符、コンマ、二重引用符の各発生)|と、各行の最初と最後に任意の二重引用符を削除最後に、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"' 
+0

が置換、 | with ...それは他のcolを作成しませんが、col bもカンマを持っています。 – srajsharma

+0

コードはコンマをパイプで置き換えません。これは二重引用符の後にカンマとそれに続く二重引用符をパイプで置き換えます。フィールドのカンマは、答えに示されている例のように置き換えられません。 V2にはカンマがあり、置き換えられませんでした。 –

関連する問題