Daten werden als Faktoren erkannt, Umwandlung in Integer funktioniert nicht
Verfasst: So Aug 05, 2018 11:51 am
Hallo zusammen,
Vorab die Frage: Wie kann ich Daten in ein Format (z.B. Integer) übertragen, damit ich damit arbeiten kann?
Habe ein kleines Problem: Ich möchte aus einer Exceldatei Daten in R einlesen und diese anschließend analysieren, aggregieren etc. Dabei handelt es sich um eine Exceldatei mit den 99 größten Firmen weltweit mit den Spalten: Ranking, Firma, Sitz, Umsatz, Gewinn, Mitarbeiter, Branche, CEO, Land (insgesammt also 9 Spalten)
Folgender Code bisher:
x <- read.csv ("C:\\Users\\...\\Mappe1.csv",sep=";")
x
## Daten einlesen/ausgeben funktioniert
## Nun möchte ich mir alle Zeilen ausgeben, deren Umsatz größer 150 ist (150 Mrd)
subset(x, x$Umsatz > 150)
# Da kommt allerdings nur die Warnung:
<0 Zeilen> (oder row.names mit Länge 0)
Warning message:
In Ops.factor(x$Umsatz, 150) : ‘>’ not meaningful for factors
Das Dateiformat scheint also "Factor" zu sein. Ich habe im Internet schon mal geschaut, wie man das in einen einfachen Integer transformieren kann
Ist das richtig?
x$Gewinn <- as.numeric(as.character(x$Gewinn))
x$Mitarbeiter <- as.numeric(as.character(x$Mitarbeiter))
x$Firma <- as.character(as.character(x$Firma))
x$Branche <- as.character(as.character(x$Branche))
x$Sitz <- as.character(as.character(x$Sitz))
x$CEO <- as.character(as.character(x$CEO))
x$LAND <- as.character(as.character(x$Land))
## Wenn ich das mache kommt bei jeder Zeile, in der ich Factor in Integer umwandeln will die Warnung:
Warning message:
NAs introduced by coercion
Bei den anderen funktioniert es
Mit str(x) kommt:
'data.frame': 99 obs. of 9 variables:
$ Ranking : num 1 2 3 4 5 6 7 8 9 10 ...
$ Firma : chr "Walmart" "ExxonMobil" "McKesson" "BP" ...
$ Sitz : chr "Bentonville" "Irving" "San Francisco" "London" ...
$ Umsatz : num NA NA NA NA NA NA NA NA NA NA ...
$ Gewinn : num NA NA NA NA NA NA NA NA NA NA ...
$ Mitarbeiter: num NA 72.7 64.5 74.5 230 ...
$ Branche : chr "Einzelhandel" "Öl und Gas" "Pharmahandel" "Öl und Gas" ...
$ CEO : Factor w/ 99 levels "Akio Toyoda",..: 18 14 44 74 79 50 49 31 17 59 ...
$ Land : Factor w/ 16 levels " Brasilien"," Deutschland",..: 15 15 15 4 15 15 13 11 2 15 ...
Viele Grüße und besten Dank
Vorab die Frage: Wie kann ich Daten in ein Format (z.B. Integer) übertragen, damit ich damit arbeiten kann?
Habe ein kleines Problem: Ich möchte aus einer Exceldatei Daten in R einlesen und diese anschließend analysieren, aggregieren etc. Dabei handelt es sich um eine Exceldatei mit den 99 größten Firmen weltweit mit den Spalten: Ranking, Firma, Sitz, Umsatz, Gewinn, Mitarbeiter, Branche, CEO, Land (insgesammt also 9 Spalten)
Folgender Code bisher:
x <- read.csv ("C:\\Users\\...\\Mappe1.csv",sep=";")
x
## Daten einlesen/ausgeben funktioniert
## Nun möchte ich mir alle Zeilen ausgeben, deren Umsatz größer 150 ist (150 Mrd)
subset(x, x$Umsatz > 150)
# Da kommt allerdings nur die Warnung:
<0 Zeilen> (oder row.names mit Länge 0)
Warning message:
In Ops.factor(x$Umsatz, 150) : ‘>’ not meaningful for factors
Das Dateiformat scheint also "Factor" zu sein. Ich habe im Internet schon mal geschaut, wie man das in einen einfachen Integer transformieren kann
Ist das richtig?
x$Gewinn <- as.numeric(as.character(x$Gewinn))
x$Mitarbeiter <- as.numeric(as.character(x$Mitarbeiter))
x$Firma <- as.character(as.character(x$Firma))
x$Branche <- as.character(as.character(x$Branche))
x$Sitz <- as.character(as.character(x$Sitz))
x$CEO <- as.character(as.character(x$CEO))
x$LAND <- as.character(as.character(x$Land))
## Wenn ich das mache kommt bei jeder Zeile, in der ich Factor in Integer umwandeln will die Warnung:
Warning message:
NAs introduced by coercion
Bei den anderen funktioniert es
Mit str(x) kommt:
'data.frame': 99 obs. of 9 variables:
$ Ranking : num 1 2 3 4 5 6 7 8 9 10 ...
$ Firma : chr "Walmart" "ExxonMobil" "McKesson" "BP" ...
$ Sitz : chr "Bentonville" "Irving" "San Francisco" "London" ...
$ Umsatz : num NA NA NA NA NA NA NA NA NA NA ...
$ Gewinn : num NA NA NA NA NA NA NA NA NA NA ...
$ Mitarbeiter: num NA 72.7 64.5 74.5 230 ...
$ Branche : chr "Einzelhandel" "Öl und Gas" "Pharmahandel" "Öl und Gas" ...
$ CEO : Factor w/ 99 levels "Akio Toyoda",..: 18 14 44 74 79 50 49 31 17 59 ...
$ Land : Factor w/ 16 levels " Brasilien"," Deutschland",..: 15 15 15 4 15 15 13 11 2 15 ...
Viele Grüße und besten Dank