[R] vectorization of loops in R

Luigi Marongiu m@rong|u@|u|g| @end|ng |rom gm@||@com
Wed Nov 17 14:20:52 CET 2021

I have a dataframe with 3 variables. I want to loop through it to get
the mean value of the variable `z`, as follows:
df = data.frame(x = c(rep(1,5), rep(2,5), rep(3,5)),
y = rep(letters[1:5],3),
z = rnorm(15),
stringsAsFactors = FALSE)
m = vector()
for (i in unique(df$y)) {
s = df[df$y == i,]
m = append(m, mean(s$z))
names(m) = unique(df$y)
> (m)
a          b          c          d          e
-0.6355382 -0.4218053 -0.7256680 -0.8320783 -0.2587004
The problem is that I have one million `y` values, so the work takes
almost a day. I understand that vectorization will speed up the
procedure. But how shall I write the procedure in vectorial terms?
Thank you

More information about the R-help mailing list