Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么当我在'dplyr'之后加载'plyr'时,summary或mutate不能与group_by一起工作?_R_Dplyr_Plyr_R Faq - Fatal编程技术网

为什么当我在'dplyr'之后加载'plyr'时,summary或mutate不能与group_by一起工作?

为什么当我在'dplyr'之后加载'plyr'时,summary或mutate不能与group_by一起工作?,r,dplyr,plyr,r-faq,R,Dplyr,Plyr,R Faq,注:此问题的标题已被编辑,以使其成为plyr函数屏蔽其dplyr对应项时问题的标准问题。问题的其余部分保持不变 假设我有以下数据: dfx <- data.frame( group = c(rep('A', 8), rep('B', 15), rep('C', 6)), sex = sample(c("M", "F"), size = 29, replace = TRUE), age = runif(n = 29, min = 18, max = 54) ) 输出如下所示:

注:此问题的标题已被编辑,以使其成为
plyr
函数屏蔽其
dplyr
对应项时问题的标准问题。问题的其余部分保持不变


假设我有以下数据:

dfx <- data.frame(
  group = c(rep('A', 8), rep('B', 15), rep('C', 6)),
  sex = sample(c("M", "F"), size = 29, replace = TRUE),
  age = runif(n = 29, min = 18, max = 54)
)
输出如下所示:

  group sex  mean    sd
1     A   F 49.68  5.68
2     A   M 32.21  6.27
3     B   F 31.87  9.80
4     B   M 37.54  9.73
5     C   F 40.61 15.21
6     C   M 36.33 11.33
我正在尝试将代码移动到
dplyr
%>%
运算符。我的代码需要DF,然后按组和性别分组,然后总结。即:

dfx %>% group_by(group, sex) %>% 
  summarise(mean = round(mean(age), 2), sd = round(sd(age), 2))
但我的输出是:

  mean   sd
1 35.56 9.92

我做错了什么?

这里的问题是先加载dplyr,然后加载plyr,因此plyr的函数
summary
屏蔽了dplyr的函数
summary
。发生这种情况时,您会收到以下警告:

library(plyr)
    Loading required package: plyr
------------------------------------------------------------------------------------------
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, desc, failwith, id, mutate, summarise, summarize
因此,为了使您的代码正常工作,请分离plyr
detach(包:plyr)
或重新启动R并首先加载plyr,然后再加载dplyr(或仅加载dplyr):

或者,您可以在代码中显式调用dplyr的summary,因此无论您如何加载包,都将调用正确的函数:

dfx %>% group_by(group, sex) %>% 
  dplyr::summarise(mean = round(mean(age), 2), sd = round(sd(age), 2))

这里的问题是,您首先加载dplyr,然后加载plyr,因此plyr的函数
summary
屏蔽了dplyr的函数
summary
。发生这种情况时,您会收到以下警告:

library(plyr)
    Loading required package: plyr
------------------------------------------------------------------------------------------
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, desc, failwith, id, mutate, summarise, summarize
因此,为了使您的代码正常工作,请分离plyr
detach(包:plyr)
或重新启动R并首先加载plyr,然后再加载dplyr(或仅加载dplyr):

或者,您可以在代码中显式调用dplyr的summary,因此无论您如何加载包,都将调用正确的函数:

dfx %>% group_by(group, sex) %>% 
  dplyr::summarise(mean = round(mean(age), 2), sd = round(sd(age), 2))

由于加载“plyr”和“dplyr”的顺序,您的代码正在调用
plyr::summary
而不是
dplyr::summary

演示:


由于加载“plyr”和“dplyr”的顺序,您的代码正在调用
plyr::summary
而不是
dplyr::summary

演示:


我不明白为什么这么少人注意到这个警告:/@hadley
fortunes::fortune(9)
我不明白为什么这么少人注意到这个警告:/@hadley
fortunes::fortune(9)
我不明白为什么这么少人注意到这个警告:/@hadley
fortunes::fortune(9)
library(dplyr) ## I'm guessing this is the order you loaded
library(plyr)
dfx %>% group_by(group, sex) %>% 
  summarise(mean = round(mean(age), 2), sd = round(sd(age), 2))
#    mean   sd
# 1 36.88 9.76
dfx %>% group_by(group, sex) %>% 
  dplyr::summarise(mean = round(mean(age), 2), sd = round(sd(age), 2))
# Source: local data frame [6 x 4]
# Groups: group
# 
#   group sex  mean    sd
# 1     A   F 32.17  6.30
# 2     A   M 30.98  7.37
# 3     B   F 38.20  7.67
# 4     B   M 33.12 12.24
# 5     C   F 43.91 10.31
# 6     C   M 47.53  8.25