2017-10-12 6 views
1

Suite à une question précédente (link), il semble que les données de regroupement ne modifient pas la mise à l'échelle lors de l'utilisation de piping et dplyr. Voici un exemple de code, légèrement modifié à partir de la question liée.Mise à l'échelle par groupe dans R en utilisant dplyr: groupement et non-regroupement semblent générer le même résultat

set.seed(123) 
n = 1000 
df <- data.frame(ID = sample(c("A","B","C","D","E"), size=n, replace=TRUE), 
       score = runif(n, 0, 10)) 

scaledByID <- 
     df %>% 
     group_by(ID) %>% 
     mutate(scaledScore = scale(score)) 

notScaledByID <- 
     df %>% 
     mutate(scaledScore = scale(score)) 

mean(scaledByID$scaledScore == notScaledByID$scaledScore) 
#[1] 1 

packageVersion("dplyr") 
#[1] ‘0.7.4’ 

Les valeurs sont identiques pour scaledByID et notScaledbyID, ce qui me porte à croire qu'il n'est pas mise à l'échelle par ID. Aucune suggestion?

Edit pour ajouter la version de R et rstudio:

RStudio.Version()$version 
#[1] ‘1.2.91’ 

R.version.string 
#[1] "R version 3.4.2 (2017-09-28)" 
+0

Quelle version R utilisez-vous? Je ne peux pas reproduire ceci –

+0

RStudio.Version() $ version # [1] '1.2.91' R.version.string [1] "R version 3.4.2 (2017-09-28)" –

Répondre

0

problème semble être une erreur avec la version 1.2.91 de rstudio. J'ai rétrogradé à la version stable (version 1.1.383), et la nouvelle sortie pour mean(scaledByID$scaledScore == notScaledByID$scale) est 0.

La version de R est la même pour les deux (3.4.2).