Seite 1 von 1
Gruppierung/Addieren von Zeilen
Verfasst: Di Aug 28, 2018 2:30 pm
von srstud
Hallo zusammen,
ich habe einen Datensatz wie folgt:
1000 | 5000€
1001 | 1000€
1001 | 1100€
...
ich würde gerne die Werte in Spalte 2 gruppieren/addieren und als Kriterium Spalte 1 benutzen. Sodass meine Ausgabetabelle dann
1000 5000€
1001 2100€
wäre.
Leider komme ich mit Group_by nicht weiter, da das mMn auch die falsche Funktion ist.
Danke vorab.
Re: Gruppierung/Addieren von Zeilen
Verfasst: Di Aug 28, 2018 3:14 pm
von jogo
Hallo srstud,
willkommen im Forum!
oder mit
aggregate()
Gruß, Jörg
Re: Gruppierung/Addieren von Zeilen
Verfasst: Di Aug 28, 2018 4:07 pm
von EDi
Oder im tidyverse
Code: Alles auswählen
df %>%
group_by(Spalte 1) %>%
summarise(sumsumsumherum = sum(Spalte2))
Oder mit data.table
Re: Gruppierung/Addieren von Zeilen
Verfasst: Fr Aug 31, 2018 1:05 pm
von srstud
Vielen Dank euch beiden! Es hat funktioniert:)
Re: Gruppierung/Addieren von Zeilen
Verfasst: Di Sep 04, 2018 11:05 am
von srstud
srstud hat geschrieben: ↑Di Aug 28, 2018 2:30 pm
Hallo zusammen,
ich habe einen Datensatz wie folgt:
1000 | 5000€
1001 | 1000€
1001 | 1100€
...
ich würde gerne die Werte in Spalte 2 gruppieren/addieren und als Kriterium Spalte 1 benutzen. Sodass meine Ausgabetabelle dann
1000 5000€
1001 2100€
wäre.
Leider komme ich mit Group_by nicht weiter, da das mMn auch die falsche Funktion ist.
Danke vorab.
Ich habe nochmals eine Frage dazu.
Angenommen ich habe die Tabelle wie oben nur mit der Erweiterung um eine dritte Spalte, die mit der Spalte A (Kundennr.) zusammenhängt (eindeutig ist):
Kundenbewegungen
1000 | 5000€ | Kunde A
1001 | 1000€ | Kunde B
1001 | 1100€ | Kunde B
...
Wenn ich jetzt NeueÜbersicht = aggregate(Kundenbewegungen$Spalte2 ~ Kundenbewegungen$Spalte1, data=Kundenbewegungen, FUN=sum) anwende, wird in der neuen Tabelle, die 3. Spalte nicht mehr angezeigt. Wie kann ich diese aber weiterhin behalten?
Danke!
Re: Gruppierung/Addieren von Zeilen
Verfasst: Di Sep 04, 2018 11:11 am
von jogo
Code: Alles auswählen
NeueÜbersicht <- aggregate(Spalte2 ~ Spalte1 + Spalte3, FUN=sum, data=Kundenbewegungen)
oder als reproduzierbares Beispiel (siehe
viewtopic.php?f=20&t=11 ):
Code: Alles auswählen
Kundenbewegungen <- read.table(header=TRUE, stringsAsFactors = FALSE, sep="|", strip.white = TRUE, text=
"KundenId | Spalte2 | Kunde
1000 | 5000 | KundeA
1001 | 1000 | KundeB
1001 | 1100 | KundeB")
aggregate(Spalte2 ~ KundenId + Kunde, FUN=sum, data=Kundenbewegungen)
und weil ich
data.table mag:
Code: Alles auswählen
library("data.table")
setDT(Kundenbewegungen)[, sum(Spalte2), .(KundenId, Kunde)]
Gruß, Jörg