Hallo Zusammen,
ich schreibe aktuell eine Hausarbeit und bin auf ein Problem gestoßen. Leider kann ich nach mehrstündigen Googeln keine Antwort auf meine Frage finden.. Durch die ausgefallenen Präsenzvorlesungen dank Corona sind leider begrenzte R-Kenntnisse vorhanden. Ich habe einen Datensatz eingelesen, der 3 variablen enthält.
1. Altersgruppe
2. Geschlecht
3. Corona-Todesfälle
Durch den Download beim RKI sind in der Spalte Todesfälle Zahlen von 1-8 vertreten, da manchmal mehere Tote auf einmal übermittelt und in einer Zeile erfasst wurden.
Wenn ich nun mit der Funktion table() eine Kreuztabelle erstellen möchte, erscheinen 8 Tabellen, für jede Anzahl Tote eine eigene. Wie kann ich das umgehen, sodass ich nur eine Tabelle erhalte?
Es sollen ausschließlich die Todesfälle pro Alter und pro geschlecht ersichtlich sein.
Vielen Dank im Voraus für die Unterstützung!
Kreuztabelle erstellen
Re: Kreuztabelle erstellen
Hallo,
Bitte gib uns ein konkretes Zahlenbeispiel als R Code oder csv und erklär, wie es aufgebaut ist und wie das Ergebnis aussehen soll.
LG, Bernhard
Bitte gib uns ein konkretes Zahlenbeispiel als R Code oder csv und erklär, wie es aufgebaut ist und wie das Ergebnis aussehen soll.
LG, Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Kreuztabelle erstellen
Hallo Bernard,
lieben Dank für die Hilfe.
Hier ist ein Auszug aus dem Datensatz. (Der originale hat ca. 200.000 Zeilen, deshalb gekürzt)
Ich habe in R bereits ein data.frame erstellt und auf die Merkmale Altersgruppe, Geschlecht und Todesfälle gefiltert + die unbekannten gelöscht.
Wenn ich nun die table funktion anwende, erhalte ich folgendes Ergebnis:
> table(RKI_COVID19_filtered)
, , AnzahlTodesfall = 1
Geschlecht
Altersgruppe M W
A00-A34 13 6
A35-A59 298 111
A60-A79 1902 871
A80+ 2375 2388
, , AnzahlTodesfall = 2
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 2 0
A60-A79 49 16
A80+ 109 185
, , AnzahlTodesfall = 3
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 5 0
A80+ 15 43
, , AnzahlTodesfall = 4
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 1 0
A80+ 9 9
, , AnzahlTodesfall = 5
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 1 0
A80+ 0 10
, , AnzahlTodesfall = 6
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 0 0
A80+ 0 6
, , AnzahlTodesfall = 7
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 0 0
A80+ 1 2
, , AnzahlTodesfall = 8
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 0 0
A80+ 0 2
Ich möchte dann, das quasi folgende Kreuztabelle angezeigt wird und nicht 8 Stück:
Ich hoffe das erklärt es.. LG Isabell
lieben Dank für die Hilfe.
Hier ist ein Auszug aus dem Datensatz. (Der originale hat ca. 200.000 Zeilen, deshalb gekürzt)
Ich habe in R bereits ein data.frame erstellt und auf die Merkmale Altersgruppe, Geschlecht und Todesfälle gefiltert + die unbekannten gelöscht.
Wenn ich nun die table funktion anwende, erhalte ich folgendes Ergebnis:
> table(RKI_COVID19_filtered)
, , AnzahlTodesfall = 1
Geschlecht
Altersgruppe M W
A00-A34 13 6
A35-A59 298 111
A60-A79 1902 871
A80+ 2375 2388
, , AnzahlTodesfall = 2
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 2 0
A60-A79 49 16
A80+ 109 185
, , AnzahlTodesfall = 3
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 5 0
A80+ 15 43
, , AnzahlTodesfall = 4
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 1 0
A80+ 9 9
, , AnzahlTodesfall = 5
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 1 0
A80+ 0 10
, , AnzahlTodesfall = 6
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 0 0
A80+ 0 6
, , AnzahlTodesfall = 7
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 0 0
A80+ 1 2
, , AnzahlTodesfall = 8
Geschlecht
Altersgruppe M W
A00-A34 0 0
A35-A59 0 0
A60-A79 0 0
A80+ 0 2
Ich möchte dann, das quasi folgende Kreuztabelle angezeigt wird und nicht 8 Stück:
Ich hoffe das erklärt es.. LG Isabell
Re: Kreuztabelle erstellen
Denkbar schlechtes Datenbeispiel mit merkwürdigen Anführungszeichen in der Datei und nur einem Geschlecht und nur einer Altersgruppe. Ich habe die Daten daher minimal abgewandelt. Ich hoffe, das erklärt es.
Code: Alles auswählen
covid <- read.table(header=TRUE, sep=",", quote="",
text="Id,IdBundesland,Bundesland,Landkreis,Altersgruppe,Geschlecht,AnzahlFall,AnzahlTodesfall,Meldedatum,IdLandkreis,Datenstand,NeuerFall,NeuerTodesfall,Refdatum,NeuGenesen,AnzahlGenesen,IstErkrankungsbeginn,Altersgruppe2,blob
blob,1,Schleswig-Holstein,SK Flensburg,A15-A34,M,1,0,2020/03/14 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/03/16 00:00:00,0,1,1,Nicht übermittelt
21645641,1,Schleswig-Holstein,SK Flensburg,A15-A34,M,1,0,2020/03/19 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/03/13 00:00:00,0,1,1,Nicht übermittelt
21645642,1,Schleswig-Holstein,SK Flensburg,A15-A34,M,1,0,2020/03/19 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/03/16 00:00:00,0,1,1,Nicht übermittelt
21645643,1,Schleswig-Holstein,SK Flensburg,A15-A34,M,1,0,2020/03/21 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/03/13 00:00:00,0,1,1,Nicht übermittelt
21645644,1,Schleswig-Holstein,SK Flensburg,A15-A34,M,1,0,2020/03/27 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/03/22 00:00:00,0,1,1,Nicht übermittelt
21645645,1,Schleswig-Holstein,SK Flensburg,A15-A34,M,1,0,2020/04/04 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/04/01 00:00:00,0,1,1,Nicht übermittelt
21645646,1,Schleswig-Holstein,SK Flensburg,A15-A34,M,1,0,2020/04/06 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/04/02 00:00:00,0,1,1,Nicht übermittelt
21645647,1,Schleswig-Holstein,SK Flensburg,A35-A99,M,1,0,2020/04/07 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/04/02 00:00:00,0,1,1,Nicht übermittelt
21645648,1,Schleswig-Holstein,SK Flensburg,A35-A99,F,1,0,2020/04/09 00:00:00,01001,19.07.2020, 00:00 Uhr,0,-9,2020/04/05 00:00:00,0,1,1,Nicht übermittelt")
str(covid)
aggregate(covid$AnzahlFall, by = list(covid$Altersgruppe, covid$Geschlecht), FUN=sum)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Kreuztabelle erstellen
Danke, das kommt dem auf jeden Fall sehr nah! Und sorry, ich bin wie gesagt ein blutiger Anfänger und wäre froh wenn ich wüsste was ich da tue
Das Ergebnis der Funktion ist folgendes: Gibt es noch die Möglichkeit, dass Altersgruppe und Geschlecht nicht mehr als Variable sondern als Spalten bzw. Zeilenbeschriftung fungieren?
Dann wäre ich wunschlos glücklich.. Danke vorab!
Das Ergebnis der Funktion ist folgendes: Gibt es noch die Möglichkeit, dass Altersgruppe und Geschlecht nicht mehr als Variable sondern als Spalten bzw. Zeilenbeschriftung fungieren?
Dann wäre ich wunschlos glücklich.. Danke vorab!
Re: Kreuztabelle erstellen
Mir persönlich erscheint die Tabellendarstellung wie aggregate sie ausgibt als praktischer, wenn man mit den Daten weiter rechnen möchte, aber natürlich sieht R auch eine Lösung für diese Frage vor. Aber wenn wir Dich wunschlos glücklich machen können, dann wollen wir die Chance natürlich nicht ungenutzt verstreichen lassen:
LG,
Bernhard
Code: Alles auswählen
xtabs(covid$AnzahlFall ~ covid$Altersgruppe + covid$Geschlecht)
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Kreuztabelle erstellen
1000 Dank!!