随笔2:R语言group_by函数不能用/失效

本文介绍了如何在tidyverse包中处理group_by函数与plyr包冲突的问题,通过detach命令隔离冲突,并以实际代码演示了如何按'individual'变量分组并计算Innovation_Index和Genius_Index的绝对值范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

group_by函数是tidyverse包里的一个用于分组摘要分析的函数,如果使用中发现无效的情形,多半是和基础包里的plyr包冲突了,这些需要暂时detach一下,解除和基础包的关联。

library(tidyverse)
detach('package:plyr')
#形成绝对值变量
Data_for_Grey_Correla$ABS <- abs(Data_for_Grey_Correla$Innovation_Index-Data_for_Grey_Correla$Genius_Index)

#获得各省绝对值序列最大最小值
Data_for_Grey_Correla_maxmin <- (Data_for_Grey_Correla %>%
                                 group_by(individual) %>%
                                 summarise(min = min(ABS),
                                           max = max(ABS)
                                 ) %>%
                                 ungroup() %>%
                                 right_join(Data_for_Grey_Correla,by = "individual"))

这里的代码块是我一篇论文的撰写过程中用到的,当时也是遇到group_by函数使用后依然未能实现分组的情况。

1.代码的第一步是用detach命令解除和有冲突的包的关联。

2.代码的第二步是将Data_for_Grey_Correla数据集里的两个变量Innovation_Index和Genius_Index相减并求绝对值

3.代码的第三步是按individual这个变量进行分组,并生成每组最大和最小值,存放在相应变量里,接着解除分组并将分组过程中生成的临时数据按照individual和原数据集匹配,将最终结果存放在一个新的数据集Data_for_Grey_Correla_maxmin里。匹配的时候根据情况不同可以用left_join和right_join等等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值