Gruppierung/Addieren von Zeilen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
srstud
Beiträge: 7
Registriert: Di Aug 28, 2018 2:25 pm

Gruppierung/Addieren von Zeilen

Beitrag von srstud » 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.

jogo
Beiträge: 1009
Registriert: Fr Okt 07, 2016 8:25 am

Re: Gruppierung/Addieren von Zeilen

Beitrag von jogo » Di Aug 28, 2018 3:14 pm

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

Benutzeravatar
EDi
Beiträge: 689
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Gruppierung/Addieren von Zeilen

Beitrag von EDi » Di Aug 28, 2018 4:07 pm

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] 
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.

srstud
Beiträge: 7
Registriert: Di Aug 28, 2018 2:25 pm

Re: Gruppierung/Addieren von Zeilen

Beitrag von srstud » Fr Aug 31, 2018 1:05 pm

Vielen Dank euch beiden! Es hat funktioniert:)

srstud
Beiträge: 7
Registriert: Di Aug 28, 2018 2:25 pm

Re: Gruppierung/Addieren von Zeilen

Beitrag von srstud » Di Sep 04, 2018 11:05 am

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!

jogo
Beiträge: 1009
Registriert: Fr Okt 07, 2016 8:25 am

Re: Gruppierung/Addieren von Zeilen

Beitrag von jogo » Di Sep 04, 2018 11:11 am

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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast