Ich habe eine Tabelle mit 2 Spalten, "name"
und "grade"
. In Spalte "name"
speichere ich Daten, die mehrfach repliziert werden können. Um das Problem zu denken, lassen Sie sich eine einfache kurze Tabelle wie die erstellen unter:So wählen Sie Zeilen nach Kriterien, die mit zwei Tabellen verbunden sind
list <- data.frame(c("Natalia", "Alex", "Adam", "Natalia", "Natalia", "Alex", "Natalia", "Adam"), c(5, 6, 5, 4, 5, 4, 3, 4))
colnames(list) <- c("name", "grade")
Ich mag würde eine dataframe
mit zwei Spalten bekommen - eine Liste der eindeutigen Daten aus der Spalte "name"
in ersten und mit einer Summe von Noten für jeden Namen in der Sekunde. Die erste Spalte ich so erstellt:
n_occur <- data.frame(table(list$name))
und es funktioniert - ich habe eine Spalte mit eindeutigen Namen aus vorheriger Tabelle.
Leider habe ich keine Ahnung, wie Noten für jeden Namen zu zählen sind. Es ist mehr oder weniger wie Pseudocode unten, aber ich weiß nicht, Syntax gut, so dass es ein bisschen schwierig für mich ist.
sum(list$grades) where (list$names == n_occur$X1)
Ich denke, dass ich irgendwie mit ausgewählten kombinieren Filter sollte, aber ich habe es nicht geschafft, das zu tun. Ich wäre sehr dankbar für Hilfe;)
Dies ist, was Sie suchen? http://stackoverflow.com/questions/1660124/how-to-sum-a-variable-by-group – Gopala