Stellen Sie sich eine DatentabelleR - data.table - Berechnen durchschnittlichen Punktzahl von Uniq-Spalten Durchschnittswert
ID Score
1 10
1 13
1 12
2 10
3 6
3 6
Die average
diese Tabelle ist 9,5. Das ist einfach genug, um mean
zu verwenden.
Was ist, wenn ich den Durchschnitt des Durchschnitts für jeden einzelnen Benutzer wollte?
Der Durchschnittswert für Benutzer 1 ist 11,67. Der Durchschnitt für Benutzer 2 ist 10. Der Durchschnitt für Benutzer 3 6.
Die UniqAverage
ich suche wäre ((11.67+10+6)/3) =
9.223`
Dieses einfach genug sein würde, eine Schleife zu tun verwenden, aber mit Mein riesiger Datensatz Ich möchte meine Bemühungen fortsetzen, Dinge zu lernen, die "richtige" Art und Weise in R machen, indem ich Vektoren benutze.
Wir können sogar annehmen, dass ich bereits eine Variable namens Uniq habe, in der die Anzahl der Uniq-IDs enthalten ist, wenn das hilft.
Für Replikationszwecke zu verwenden, fühlen Sie sich frei ...
library(data.table)
df = data.frame(ID=c(1,1,1,2,3,3), Score1=c(10,13,12,10,6,6))
dt = data.table(df)
meisten Mein gescheiterter Versuch vor kurzem war
mean(dt[ unique(dt$ID), Score1])
dachte ich, dass das Mittel von Score1 für jede ID nehmen würde, aber es didn Es klappt nicht. Ich habe das Ergebnis 11.67
was falsch ist.
Ich würde vorschlagen, dass Sie die durch [Vignetten] (https://github.com/Rdatatable/data.table/wiki/Getting-started). – Arun
Wird tun, danke schön. – Jibril