【R语言】报错解析:dplyr::group_by 后只显示一条记录,实际应多条记录的报错解析

今天遇到个函数失效问题,特地记录下:

先上语句

library("dplyr")
zy1=mtcars%>% group_by(cyl)%>%summarise(sum=sum(mpg))
zy1

正常应该显示如图:
【R语言】报错解析:dplyr::group_by 后只显示一条记录,实际应多条记录的报错解析_第1张图片
是多条记录的group_by

但楼主显示的是这样的:
【R语言】报错解析:dplyr::group_by 后只显示一条记录,实际应多条记录的报错解析_第2张图片
只有一条记录. 百思不得其解答.

各种测试安装之后,找到了根本问题.

报错原因:
R中因宏包冲突导致的函数覆盖,以及函数失效问题.
如先加载dplyr,然后再加载plyr,所以plyr的功能summarise掩盖了dplyr的功能summarise;
因为2个包中均含有summarise函数,所以后倒入的包会覆盖之前倒入的包,mutate也一样;
系统其实也会提示报错

> library(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)
----------------------------------------------------------------------------------------

载入程辑包:‘plyr’

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

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

The following object is masked from ‘package:purrr’:

    compact

解决方法:

  1. 在清楚知道每个包的函数情况下,调整代码语句:
jw1<- mtcars %>%
group_by(cyl) %>%
dplyr::summarise(sum=sum(mpg))
jw1

【R语言】报错解析:dplyr::group_by 后只显示一条记录,实际应多条记录的报错解析_第3张图片

  1. 调整导入包的顺序,避免宏覆盖
library("plyr") 
library("dplyr")

总结:
包不要随意导,这个问题有点坑…

参考文档:
https://stackoverflow.com/posts/26106218/revisions;

原文链接:
https://blog.csdn.net/weixin_41613094/article/details/106399507 ;
转载请沟通

你可能感兴趣的:(R语言学习,r语言,数据库)