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等等。