2017-07-04 6 views

Antwort

1

Unter der Annahme, dass Sie gemeint xxxx und nicht "xxxx" als Ausgang für die letzte Spalte jedes Vorkommen von "," ersetzen (dh jedes Auftreten von doppelten Anführungszeichen, Komma, doppeltes Anführungszeichen) mit | und entfernen Sie die doppelte Anführungszeichen am Anfang und Ende jeder Zeile Schließlich lesen read.table: ein.

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

giving:

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

Eine Variation des obigen ist es als magrittr Pipeline auszudrücken:

library(magrittr) 

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

Anmerkung: Die Eingabe in reproduzierbarer Form ist:

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

ersetzen, with | ..wird es beim Lesen nicht ein anderes col erzeugen, da das col b auch Kommas hat – srajsharma

+0

Der Code ersetzt keine Kommas mit Pipes. Es ersetzt ein doppeltes Anführungszeichen, gefolgt von einem Komma, gefolgt von einem doppelten Anführungszeichen mit einer Pipe. Ein Komma in einem Feld wird NICHT ersetzt, wie in dem Beispiel in der Antwort zu sehen ist. V2 hat ein Komma und es wurde nicht ersetzt. –

Verwandte Themen