(Weitere Fragen & elsewhere auf diesem Forum Antworten scheinen nicht mit dem grenzüberschreitenden Problem in diesem Feed erwähnt zu behandeln)R - finden durchschnittliche Projektmitglieder innerhalb und zwischen den Staaten
Angenommen, ich habe die folgenden Daten:
df <- data.frame(id=c("Eric", "John", "Sarah", "Simon", "Abdul", "Charlotte", "Alex", "Susan"),
state=c("CA", "AK", "NY", "NY", "NJ", "GA", "CA", "CA"),
project=c(1, 2, 2, 2, 3, 4, 5, 5), stringsAsFactors = F)
> df
id state project
1 Eric CA 1
2 John AK 2
3 Sarah NY 2
4 Simon NY 2
5 Abdul NJ 3
6 Charlotte GA 4
7 Alex CA 5
8 Susan CA 5
Ich möchte die durchschnittliche Anzahl der Projektmitglieder pro Staat, auch grenzüberschreitende Mitglieder zählen.
Um die durchschnittlich nur in-state-Mitglieder zu erhalten, habe ich folgendes:
dfx <- data.frame()
dfy <- data.frame()
for(j in unique(df$state)){
h <- subset(df, state==j)
counts <- plyr::count(h, 'project')
#uniques <- length(unique(sub$invje))
average_members <- mean(counts$freq)
dfx <- data.frame(state=j,
average_members=average_members)
dfy <- rbind(dfy, dfx)
}
> dfy
state average_members
1 CA 1.5
2 AK 1.0
3 NY 2.0
4 NJ 1.0
5 GA 1.0
Das nach, ich bin gewünschte Ausgabe sowohl AK und NY sollte 3 punkten, da jede ID mit zwei anderen IDs arbeitet an einem Projekt (trotz Leben in einem anderen Staat).
> desired
state average_members
1 CA 1.5
2 AK 3.0
3 NY 3.0
4 NJ 1.0
5 GA 1.0
Kann jemand das programmieren?
Können Sie nach Ihren Wunsch Ausgabe erhalten? woher kommt auch "zählt"? – Wen
@Wen 'counts $ freq' kommt von' counts' generiert durch 'plyr :: count (h, 'project')' –
Mögliches Duplikat von [Mehrere Variablen zusammenfassen/zusammenfassen (zB Summe, Mittelwert, etc)] (https://stackoverflow.com/questions/9723208/aggregate-summarize-multiple-variables-per-group-ie-sum-mean-etc) – Kristofersen