2016-03-23 10 views
0

Ich habe Datenrahmen in R, die ein Spalte von Typ Charakter mit Werten enthält, wie folgtProblem mit einer Säule, die Sonderzeichen

"\"121.29\"" 
"\"288.1\"" 
"\"120\"" 
"\"V132.3\"" 
"\"800\"" 

Ich versuche, die zusätzlichen loszuwerden "und \ und behalten als saubere Werte unter

121.29 
288.10 
120.00 
V132.30 
800.00 

ich versuchte gsub("([\\])","", x) auch str_repalce_all Funktion bisher kein Glück. ich würde schätzen es sehr, wenn mir jemand helfen kann Reso Ich habe dieses Problem. Danke im Voraus.

Antwort

2

Versuchen

gsub('\\"',"",x) 
[1] "121.29" "288.1" "120" "V132.3" "800" 

Da der vierte Eintrag nicht numerisch und ein atomares Vektor kann nur Einträge aus dem gleichen Modus enthält, die Einträge werden alle Zeichen in diesem Fall (der flexibelste Modus der Lage, die Daten zu speichern,). Es wird also immer noch Zitate um jeden Eintrag geben.

Da \ ein Sonderzeichen ist, muss es mit einem umgekehrten Schrägstrich versehen werden, sodass der Ausdruck \\" als erster Parameter an gsub() übergeben wird. Darüber hinaus kann, wie von @raw vorgeschlagen, ein einfaches Anführungszeichen verwendet werden, um das doppelte Anführungszeichen zu adressieren. Eine Alternative wäre doppelte Anführungszeichen zu verwenden und entkommen sie auch:

gsub("\\\"","",x) 

, die das gleiche Ergebnis liefert.

Hoffe, das hilft.

+0

Würde nicht nur 'gsub ('' ',' ',' '\" 800 \ "' ')' funktionieren (wie @raw bereits erwähnt)? –

+0

@DavidArenburg Ja, es würde funktionieren. Die Antwort Sie ' Das Vorschlagen ist um zwei Zeichen kürzer, ich bevorzuge meinen Vorschlag, weil ich es klarer finde: Es entfernt den Backslash, anstatt sie in der Ausgabe unsichtbar zu machen. " – RHertel

+0

Ich glaube nicht, dass die Backslashes wirklich da sind. Es ist nur eine Druckmethode. Versuchen Sie es mit "" "800" "in der Konsole. –

Verwandte Themen