> library(dplyr) > mtcars %>% + add_rownames()%>% #if the rownames are needed as a column + group_by(cyl) %>% + mutate(cent= mpg-mean(mpg))%>% + dplyr ::select(cent) Adding missing grouping variables: `cyl` # A tibble: 32 x 2 # Groups: cyl [3] cyl cent <dbl> <dbl> 1 6 0.909 2 6 0.909 3 4 2.71 4 6 1.31 5 8 -1.39 6 6 -1.99 7 8 -5.79 8 4 4.31 9 4 2.71 10 6 -0.891 # ⦠with 22 more rows Warning message: Deprecated, use tibble::rownames_to_column() instead. > mtcars$mpg[1:5]-mean(mtcars$mpg) [1] 0.909375 0.909375 2.709375 1.309375 -1.390625 I intend to center the mpg at group level mean (i.e. the mean values are diferent at different cyl group), but above code centered at global mean.
4 Réponses :
Votre code fonctionne juste bien (ou au moins cela fait ce que vous pensez qu'il fait:
cyl Mean <dbl> <dbl> 1 6 19.7 2 6 19.7 3 4 26.7 4 6 19.7 5 8 15.1 6 6 19.7 7 8 15.1 8 4 26.7 9 4 26.7 10 6 19.7
> mtcars %>% + add_rownames()%>% #if the rownames are needed as a column + group_by(cyl) %>% + mutate(cent= mpg-mean(mpg), + mean= mean(mpg))%>% + dplyr ::select(mpg,mean,cent) Adding missing grouping variables: `cyl` # A tibble: 32 x 4 # Groups: cyl [3] cyl mpg mean cent <dbl> <dbl> <dbl> <dbl> 1 6 21 20.1 0.909 2 6 21 20.1 0.909 3 4 22.8 20.1 2.71 4 6 21.4 20.1 1.31 5 8 18.7 20.1 -1.39 6 6 18.1 20.1 -1.99 7 8 14.3 20.1 -5.79 8 4 24.4 20.1 4.31 9 4 22.8 20.1 2.71 10 6 19.2 20.1 -0.891
Il est étrange que quand j'ajoute dplyr :: préfixe, tout va bien;
Qu'en est-il d'utiliser code> échelle code>? Assurez-vous de spécifier échelle = f code> ou il sera normalisé comme le fera. Cela donne: p>