2017-01-29 4 views
2

ich data.frame wie dieses:Convert Datenrahmen Spalte verketteten Zeichenfolge ohne Anführungszeichen

df = data.frame(str_col = c("when xyz = 'some_string' then 'this_string'", 
          "when xyz = 'some_string2' then 'this_string'")) 

Ich möchte die str_col zu einem Komma getrennt Vektor ohne doppelte Anführungszeichen wie konvertieren:

c(when xyz = 'some_string' then 'this_string', when xyz = 'some_string2' then 'this_string')

ich dies versuchte: str_vec <- paste(shQuote(df$str_col), collapse=",")

Aber ich bekomme diese:

[1] "\"when xyz = 'some_string' then 'this_string'\",\"when xyz = 'some_string2' then 'this_string'\"" 

Ich möchte nicht den umgekehrten Schrägstrich oder doppelte Anführungszeichen. Ich versuche eine SQL-Abfrage zu erstellen.

Antwort

2

ich glaube, Sie noquote statt shQuote verwenden sollten:

str_vec <- paste(noquote(df$str_col), collapse=",") 

die gibt:

> str_vec 
[1] "when xyz = 'some_string' then 'this_string',when xyz = 'some_string2' then 'this_string'" 

Wenn Sie die doppelten Anführungszeichen als auch um das obige Ergebnis wollen elimenate, Sie Wickeln Sie es wieder in noquote:

str_vec <- noquote(paste(noquote(df$str_col), collapse=",")) 

die gibt:

> str_vec 
[1] when xyz = 'some_string' then 'this_string',when xyz = 'some_string2' then 'this_string' 
+1

machte ich einen kleinen Fehler in der erwarteten Ausgabe ich wollte. . Zwischen dem Zeitpunkt sollte kein Komma stehen, aber ich habe es korrigiert, indem ich das Argument zum Zusammenfalten in Ihrer Antwort angepasst habe. Vielen Dank ! – vagabond

Verwandte Themen