2017-11-18 3 views
1

Ich habe ein Datenframe mit einer Variablen, die ein Faktor ist, der $ Zeichen enthält. Also ist die Spalte etwas wie Umsatz: $ 450, $ 550, $ 650 .. etc. Ich möchte den $ - und Transformationsfaktor auf numerisch streichen.

Ich versuchte Parsing mit Methoden auf Stackoverflow gefunden, aber sie zurückgeben und Fehlermeldung. Sind $ spezielle Symbole?

Hier ist, was ich versucht habe:

str_replace(df$Revenue, "$", "") #error message 
as.numeric(gsub("$", "", df$Revenue) #Similar error message 

Diese Arbeit zu entfernen Symbole wie „%“, aber aus irgendeinem Grund nicht replizierbar mit „$“. Irgendein Grund warum?

Antwort

3

Sie könnten versuchen:

myvec <- c("$450", "$550", "$650") 
as.numeric(gsub('\\$', '', myvec)) 
#[1] 450 550 650 

Oder als Alternative:

as.numeric(gsub('$', '', myvec, fixed = TRUE)) 
#[1] 450 550 650 

Sie müssten $ entkommen, um es mit Regex funktioniert (weil $ ein Sonderzeichen ist) oder einen Satz fixed = TRUE .

+0

Ehrfürchtig. Ich wusste nicht, dass $ ein Sonderzeichen ist. Was sind sonst noch Sonderzeichen in R? – D500

+0

Sie sind Sonderzeichen in Regex nicht R. '. \ |() [{^ $ * +? 'das sind die wichtigsten. Sie können mehr darüber lesen, wenn Sie '? Regex' auf Ihrer Konsole eingeben. – LyzandeR

+0

Ich habe festgestellt, dass dies eine gute Zusammenfassung ist: http://stat545.com/block022_regular-expression.html –