Tabelle umformen

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
zinbu
Beiträge: 22
Registriert: Fr Mai 08, 2020 10:38 am

Tabelle umformen

Beitrag von zinbu »

Hallo,

vorweg: ich bin totale R Anfängerin.
Ich habe für meine Projektarbeit einen Data.frame mit verschiedenen Namen und Geburtsdaten in 2 Spalten. Mehrere Personen haben die gleichen Geburtsdaten.

Nun will ich die Tabelle so umformen, dass nurnoch 1 Geburtsdatum pro Zeile auftaucht und dahinter alle Namen aufgelistet sind die dazu passen.
Steh jetzt aber total auf dem Schlauch wie ich das anfange.

Danke schonmal.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Tabelle umformen

Beitrag von jogo »

Hallo Zinbu,

willkommen im Forum!
Kannst Du uns bitte die Struktur Deines Dataframes zeigen, also den output von

Code: Alles auswählen

str(DeinDataframe)
:?:

Gruß, Jörg
zinbu
Beiträge: 22
Registriert: Fr Mai 08, 2020 10:38 am

Re: Tabelle umformen

Beitrag von zinbu »

so siehts am Anfang aus :geek:

Code: Alles auswählen

> str(projekt)
'data.frame':	30 obs. of  3 variables:
 $ name : chr  "Paul" "Otto" "Gabi" "Konrad" ...
 $ dat  : chr  "18.1.1959" "27.5.1972" "6.2.1974" "16.7.1969" ...
 $ quart: num  1 2 1 3 3 3 2 2 4 3 ...
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Tabelle umformen

Beitrag von bigben »

Hilft das?

Code: Alles auswählen

projekt <- data.frame(name = c("Paul", "Otto", "Gabi", "Konrad", "Steffi"),
                      dat = c("18.1.1959", "27.5.1972", "6.2.1974", "18.1.1959", "6.2.1974"),
                      stringsAsFactors = FALSE)

tapply(projekt$name, projekt$dat, c)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Tabelle umformen

Beitrag von jogo »

oder so:

Code: Alles auswählen

tapply(projekt$name, projekt$dat, paste0, collapse="; ")
:?:
(Beispieldaten von Bernhard)

Gruß, Jörg
zinbu
Beiträge: 22
Registriert: Fr Mai 08, 2020 10:38 am

Re: Tabelle umformen

Beitrag von zinbu »

Super, vielen Dank! Das bringt mich schonmal weiter :)

Ich würde die Namen nur noch gerne nicht nur als Liste hinter den Daten haben, sondern jeden Namen weiterhin in einer einzelnen Spalte haben, um sie danach weiter zu filtern usw..
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Tabelle umformen

Beitrag von jogo »

Code: Alles auswählen

projekt <- data.frame(name = c("Paul", "Otto", "Gabi", "Konrad", "Steffi"),
                      dat = c("18.1.1959", "27.5.1972", "6.2.1974", "18.1.1959", "6.2.1974"),
                      stringsAsFactors = FALSE)

aggregate(name ~ dat, data=projekt, FUN=paste0, collapse='; ')
Gruß, Jörg
zinbu
Beiträge: 22
Registriert: Fr Mai 08, 2020 10:38 am

Re: Tabelle umformen

Beitrag von zinbu »

Perfekt :)

Noch eine letzte Frage

Die Daten enthalten auch Mehrfachnennungen von Namen.

Wie bekomme ich es hin, dass pro Zeile keine doppelten mehr zu sehen sind

bis jetzt ist es ca so

1.1.2000 - Klaus,Dieter,Dieter,Alex
2.2.2000 - Klaus,Kathrin
3.3.2000 - Moni,Moni,Moni

Soll dann so ca. aussehen:

1.1.2000 - Klaus,Dieter, Alex
2.2.2000 - Klaus, Kathrin
3.3.2000 - Moni

Danke euch! :)
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Tabelle umformen

Beitrag von jogo »

Code: Alles auswählen

aggregate(name ~ dat, data=projekt, FUN=function(x) paste0(unique(x), collapse='; '))
Gruß, Jörg
Antworten