Seite 1 von 1

Tabelle umformen

Verfasst: Fr Mai 08, 2020 10:46 am
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.

Re: Tabelle umformen

Verfasst: Fr Mai 08, 2020 10:48 am
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

Re: Tabelle umformen

Verfasst: Fr Mai 08, 2020 2:13 pm
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 ...

Re: Tabelle umformen

Verfasst: Fr Mai 08, 2020 2:31 pm
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

Re: Tabelle umformen

Verfasst: Fr Mai 08, 2020 3:19 pm
von jogo
oder so:

Code: Alles auswählen

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

Gruß, Jörg

Re: Tabelle umformen

Verfasst: Sa Mai 09, 2020 10:47 am
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..

Re: Tabelle umformen

Verfasst: Sa Mai 09, 2020 1:25 pm
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

Re: Tabelle umformen

Verfasst: So Mai 10, 2020 3:03 pm
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! :)

Re: Tabelle umformen

Verfasst: So Mai 10, 2020 4:09 pm
von jogo

Code: Alles auswählen

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