【问题标题】:Apply function to grouped variable using dplyr?使用dplyr将函数应用于分组变量?
【发布时间】:2015-06-01 19:18:10
【问题描述】:

Learning R 帖子基于变量组将函数应用于列:

数据如下:

 NAME, variable, value
 1   , GROUP1, 10
 2   , GROUP1, 20
 3   , GROUP2, 20
 4   , GROUP2, 30

我可以使用这个函数按变量重新缩放:

nba.m <- ddply(nba.m, .(variable), transform, rescale = rescale(value))

如何使用 dplyr 包执行相同的计算?我试过了:

nba.m <- nba.m %>%group_by(variable) %>% mutate(rescale=rescale(as.numeric(value)))

但是,这会缩放整个“值”列而不按变量分组。谢谢, 马特

【问题讨论】:

  • 试试dplyr::mutate(rescale=
  • rescale() 来自哪里?它似乎适用于规模:nba.m %&gt;%group_by(variable) %&gt;% mutate(rescale=scale(as.numeric(value))) 你得到什么输出?您是否同时加载了 dplyrplyr?你先加载plyr 了吗?
  • @MrFlick 在我加载ggplot2 后,加载了一些具有rescale 功能的hadleyverse "scales" 包;我想就是这样。必须是,因为ggplot2 位于 OP 链接到的帖子标题中

标签: r plyr dplyr


【解决方案1】:

这可能是由于 plyr 屏蔽了 dplyr 中的对象造成的。这就是为什么您应该在调用library(plyr) 之后始终调用library(dplyr)。否则会引发此警告:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
You have loaded plyr after dplyr - this is likely to cause problems.
If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
library(plyr); library(dplyr)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

Attaching package: ‘plyr’

The following objects are masked from ‘package:dplyr’:

    arrange, count, desc, failwith, id, mutate, rename, summarise, summarize

因此,您也可能在使用这些其他功能时遇到类似问题。通过在 dplyr 之前附加 plyr 来解决它,或者正如@akrun 指出的那样:明确引用您想要的包中的函数,在这种情况下通过前缀 dplyr::

请注意,您可以使用 search() 检查附加包的顺序(在这种情况下,我附加了 dplyr after plyr):

search()
 [1] ".GlobalEnv"        "package:dplyr"     "package:plyr"      "tools:rstudio"     "package:stats"     "package:graphics"  "package:grDevices" "package:utils"    
 [9] "package:datasets"  "package:methods"   "Autoloads"         "package:base"    

【讨论】:

    猜你喜欢
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 2010-09-29
    相关资源
    最近更新 更多