使用 dplyr 在 R 中按组缩放:分组和非分组似乎产生相同的结果
Scaling by group in R using dplyr: grouping and non-grouping seem to generate the same result
跟进上一个问题 (),分组数据似乎在使用管道和 dplyr 时不会改变缩放比例。这是一些示例代码,与链接问题略有不同。
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’
scaledByID
和 notScaledbyID
的值相同,这让我相信它不是按 ID 缩放的。有什么建议吗?
编辑以添加 R 和 RStudio 的版本:
RStudio.Version()$version
#[1] ‘1.2.91’
R.version.string
#[1] "R version 3.4.2 (2017-09-28)"
问题似乎是 RStudio 1.2.91 版的错误。我降级到稳定版本(版本 1.1.383),mean(scaledByID$scaledScore == notScaledByID$scale)
的新输出是 0
.
两者的 R 版本相同 (3.4.2)。
跟进上一个问题 (
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’
scaledByID
和 notScaledbyID
的值相同,这让我相信它不是按 ID 缩放的。有什么建议吗?
编辑以添加 R 和 RStudio 的版本:
RStudio.Version()$version
#[1] ‘1.2.91’
R.version.string
#[1] "R version 3.4.2 (2017-09-28)"
问题似乎是 RStudio 1.2.91 版的错误。我降级到稳定版本(版本 1.1.383),mean(scaledByID$scaledScore == notScaledByID$scale)
的新输出是 0
.
两者的 R 版本相同 (3.4.2)。