1
Hallo Ich versuche, einen Durchschnittswert einer Variablen in allen Zeilen mit dplyr
zu finden. Da dplyr
bietet eine komfortable Funktion row_number()
genannt, ich dachte, dass ich es so verwenden könnte:Wie berechne ich einen Durchschnittswert mit dplyr in R?
library(dplyr)
iris %>%
tbl_df %>%
select(Sepal.Length) %>%
mutate(loo_avg=mean(Sepal.Length[-row_number()])) # leave one out average
Aber das gibt ein Ergebnis wie folgt aus:
Source: local data frame [150 x 2]
Sepal.Length loo_avg
(dbl) (dbl)
1 5.1 NaN
2 4.9 NaN
3 4.7 NaN
4 4.6 NaN
5 5.0 NaN
6 5.4 NaN
7 4.6 NaN
8 5.0 NaN
9 4.4 NaN
10 4.9 NaN
.. ... ...
Wie behebe Sie das?
Vielleicht ist das, was Sie suchen: http://StackOverflow.com/Questions/35858876/Calculate-group-mean-while-excluding-current-Observation-using-dplyr/35859197#35859197 – mtoto
@ mtoto That ist ziemlich ordentlich! . Aber ... was, wenn ich kompliziertere Funktionen als den Durchschnitt verwenden möchte? Ich habe gesucht, ob es einen Weg gibt, der Subsetting verwendet. – Alby
siehe den Kommentar von akrun in der verknüpften Frage. – mtoto