Seite 1 von 1

Zeilen in Dataframe mit gleichem Attribut zusammenführen

Verfasst: Fr Sep 20, 2019 8:19 pm
von Laila
Hi,

ich würde gerne aus einem Dataframe Zeilen mit einem gleichen Attribut zusammenführen. In dem folgenden Beispiel sollte in der Tabelle also nur noch ein Eintrag mit "apple" stehen, hinter dem dann die Summe der "cost"s für alls "apple"s summiert steht - das gleiche für "pear" etc. Ich möchte das aber nicht für jedes Attribut einzeln definieren. Gibt es eine Möglichkeit, das zu automatisieren (also dass R eine ganze Spalte des Dataframe nach gleichartigen Zellen durchsucht und die betreffenden Zeilen zusammenführt)?

Beispiel:

fruit <- c("apple", "pear", "orange", "apple", "strawberry", "apple", "apple", "grape", "pear")
cost <- c(1,3,5,2,4,6,3,7,8)

example <- data.frame(cbind(fruit, cost))

Re: Zeilen in Dataframe mit gleichem Attribut zusammenführen

Verfasst: Fr Sep 20, 2019 10:41 pm
von EDi

Code: Alles auswählen

fruit <- c("apple", "pear", "orange", "apple", "strawberry", "apple", "apple", "grape", "pear")
cost <- c(1,3,5,2,4,6,3,7,8)

example <- data.frame(fruit, cost)

aggregate(cost ~ fruit, data = example, sum)
Ansonsten hab ich hier eine Übersicht über die verschiedenen Möglichkeiten gemacht: [url]https://stackoverflow.com/questions/25314336/extract-the-maximum-value-within-each-group-in-a-dataframe/25314565#25314565[/url]

Re: Zeilen in Dataframe mit gleichem Attribut zusammenführen

Verfasst: Fr Sep 20, 2019 10:42 pm
von bigben

Code: Alles auswählen

example <- data.frame(
  fruit = c("apple", "pear", "orange", "apple", "strawberry", "apple",
            "apple", "grape", "pear"),
   cost = c(1,3,5,2,4,6,3,7,8)
)

tapply(example$cost, example$fruit, sum)

aggregate(example$cost, list(example$fruit), sum)

by(example$cost, list(example$fruit), sum)
LG,
Bernhard