2017-10-12 52 views
1

继上一个问题(link)后,似乎在使用管道和dplyr时分组数据不会改变缩放比例。这里是一些示例代码,从链接的问题略有改变。使用dplyr按R按组缩放:分组和非分组似乎会生成相同的结果

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’ 

的值是相同的scaledByIDnotScaledbyID,这使我相信它不是由ID缩放。有什么建议么?

修改以添加R和RStudio的版本:

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

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

您使用的是哪个R版本?我无法复制这个 –

+0

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

回答

0

问题似乎是一个误差RStudio的91年2月1日的版本。我降级到稳定版本(版本1.1.383),并且mean(scaledByID$scaledScore == notScaledByID$scale)的新输出为0

两个版本(3.4.2)都是相同的。