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
Gruß, Jörg
Re: Tabelle umformen
Verfasst: Fr Mai 08, 2020 2:13 pm
von zinbu
so siehts am Anfang aus
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