【问题标题】:Scaling by group in R using dplyr: grouping and non-grouping seem to generate the same result使用 dplyr 在 R 中按组缩放:分组和非分组似乎产生相同的结果
【发布时间】:2018-03-24 20:57:45
【问题描述】:

跟进上一个问题 (link),在使用管道和 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’

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

编辑以添加 R 和 RStudio 版本:

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

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

【问题讨论】:

  • 您使用的是哪个 R 版本?我无法重现此
  • RStudio.Version()$version #[1] ‘1.2.91’ R.version.string [1] "R 版本 3.4.2 (2017-09-28)"

标签: r dplyr normalization scaling


【解决方案1】:

问题似乎是 RStudio 版本 1.2.91 的错误。我降级为稳定版本(版本 1.1.383),mean(scaledByID$scaledScore == notScaledByID$scale) 的新输出为0

两者的 R 版本相同 (3.4.2)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    相关资源
    最近更新 更多