Ich habe einen Datenrahmen:Verwenden Sie die Funktion in groupby mit variabler Spaltennamen in R mit dplyr
df <- data.frame(Category = c(rep("A", 3), rep("B", 3)), Value = rnorm(6))
df
Category Value
1 A -0.94968814
2 A 2.56687061
3 A -0.15665153
4 B -0.47647105
5 B 0.83015076
6 B -0.03744522
Jetzt möchte ich eine weitere Spalte hinzuzufügen, die die mittlere pro Kategorie ist. Dies kann mit dem dplyr Paket einfach erfolgen:
df %>% group_by(Category) %>%
summarize(mean = mean(Value))
nun in Stück Code ist mein Problem: Ich kann nicht mean(Value)
verwenden kann, aber ich habe einen Variablennamen, der den Spaltennamen kennt: columnName = "Value"
Aber diese leider wird nicht funktionieren:
columnName = "Value"
df %>% group_by(Category) %>%
summarize(mean = mean(columnName))
Warnmeldungen: 1: In mean.default ("Value"): Argument nicht numerisch oder logisch ist: Rückkehr NA 2: In mean.default ("Value"):
Argument ist nicht numerisch oder logisch: NA
Wie Rückkehr kann ich den Namen der Spalte mit der Variablen übergeben?
'Mittel verwenden (df [, Spaltenname])' dieser Code für mich gearbeitet, wenn die gleichen Variablen wie Sie. –
Nein, das funktioniert nicht. Es muss der Mittelwert der Gruppen sein, nicht der Mittelwert der Spalte. – user2874583
Es verwendet nicht das Paket 'dplyr', aber es funktioniert wie folgt:' tapply (df [, columnName], df $ Category, mean) ' –