> 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>