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!

Code: Alles auswählen

tapply(Datensatz$Spalte2, Datensatz$Spalte1, FUN=sum)
oder mit aggregate()

Code: Alles auswählen

aggregate(Spalte2 ~ Spalte1, data=Datensatz, FUN=sum)
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

Code: Alles auswählen

dt[, sum(Spalte2), by = Spalte1] 

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