So ändern Sie das Wertformat für eine bestimmte Spalte – R
Angenommen, ich habe einen Datensatz traffic
mit einer Spalte Traffic_count
, die die Verkehrszählung für jede Verkehrszählstation anzeigt:
Traffic_counting_station_ID | Traffic_count |
---|---|
1 | 24.592 |
2 | 65.500 |
3 | 4.976 |
Das Problem ist, dass Traffic_count
es als Float-Typ interpretiert wird, während die Werte ganze Zahlen darstellen sollten. Wenn ich beispielsweise eine neue Spalte generiere, Traffic_count_TimesTen
die als formuliert ist traffic$Traffic_count*10
, lautet die resultierende Tabelle:
Traffic_counting_station_ID | Traffic_count | Traffic_count_TimesTen |
---|---|---|
1 | 24.592 | 245.92 |
2 | 65.500 | 655,00 |
3 | 4.976 | 49.76 |
Wenn ich mich anwende, traffic$Traffic_count <- as.integer(traffic$Traffic_count)
sind die Werte für Traffic_count
nur 25, 66 bzw. 5.
Die Anwendung traffic$Traffic_count <- as.numeric(gsub(".","",traffic$Traffic_count))
zum Entfernen des Punktes, der den Typ Float definiert, führt zu NA
.
Wie kann ich die Werte von Traffic_count in Ganzzahlen umwandeln, sodass die Werte in Traffic_count
als 24592, 65500, 4976 und die Werte in Traffic_count_TimesTen
als 245920, 655000 und 49760 angesehen werden?
Ihre gsub
Lösung ist fast richtig. Versuchen Sie Folgendes:
traffic$Traffic_count <- as.numeric(gsub("\\.","",traffic$Traffic_count))
Erläuterung
.
ist ein Sonderzeichen in Regex und bedeutet "beliebiges" Zeichen, daher wird es jeden Buchstaben durch ersetzen ""
. Wenn Sie einen Punkt ausdrücklich ersetzen möchten, müssen Sie ihm ein voranstellen \
. Da R jedoch versucht, ein einzelnes "" innerhalb einer Zeichenfolge zu interpretieren, müssen wir R selbst anweisen, den Schrägstrich nicht mit einem anderen Schrägstrich vorzuverarbeiten. deshalb\\