2012-11-27 8 views
6

Ich habe eine ganze Spalte mit Zahlen, die Komma-Trennzeichen zu Tausenden enthalten. Wenn ich versuche, eine numerische Spalte daraus zu erstellen, wird alles über 999 zu NA.Zahlenwerte enthalten Komma - wie mache ich diese Zahlen?

I verwendet cbind:

df <- cbind(df, var2 = as.numeric(as.character(df$var1))) 

und Liquidation mit:

 var1 var2 
1 2,518.50 NA 
2 2,518.50 NA 
3 5,018.50 NA 
4 4,018.50 NA 
5 10,018.50 NA 
6  318.50 318.5 
7 2,518.50 NA 
8 3,518.50 NA 
9 7,518.50 NA 
10 1,018.50 NA 

Gibt es eine Möglichkeit, die Kommas abzustreifen oder as.numeric sagen, wie sie zu behandeln?

+3

können Sie 'gsub' verwenden. 'gsub (',', '', var2)' – Justin

+2

@ mnel Ich denke, das würde etwas anderes tun? Würde das nicht "1000" genauso behandeln wie "1"? Während Amanda sagt, dass "1000" wie 1000 behandelt werden sollte, – Dason

+0

@Dason, gut aufgehoben. – mnel

Antwort

9

Wenn Sie versuchen, eine neue Spalte hinzuzufügen var2 zu df, können Sie die folgende

df$var2 <- as.numeric(gsub(",", "", as.character(df$var1))) 
+1

Nice. Ich brauche nicht einmal Cbind? – Amanda

+3

nein, mit Datenrahmen, die Sie einfach zuweisen können. 'df [[var2]] <- value' und' df $ var2 <- value' funktionieren beide. –

2

Verwendung as.numeric(gsub(",", "", df$var1)) verwenden.

Sie möchten gsub verwenden, da sub nur das erste Komma ersetzen wird.