使用dplyr的summarize时group_by报错,求修正代码生成目标数据框
问题解析与修正方案
错误原因
- 错误地将
group_by(Airline)作为参数传入summarize函数,summarize的参数应为汇总计算表达式,而非分组操作。 - 单独调用
group_by(Airline)时,Airline是字符型列名(单个向量),但group_by需要作用于数据框对象,而非单个字符向量,因此触发"no applicable method for 'group_by' applied to an object of class 'character'"错误。
修正后的代码
推荐使用dplyr的管道语法(逻辑更清晰):
library(dplyr) # 按Airline分组后汇总计算 Overview_All_Flights_test <- Airline_Arrivals_Wide %>% group_by(Airline) %>% summarize( delayed = sum(delayed), ontime = sum(ontime), Total_Arrivals = sum(Total_Arrivals) )
如果不习惯管道写法,也可以分步操作:
library(dplyr) # 先对数据框按Airline分组 grouped_flights <- group_by(Airline_Arrivals_Wide, Airline) # 对分组后的数据汇总计算 Overview_All_Flights_test <- summarize( grouped_flights, delayed = sum(delayed), ontime = sum(ontime), Total_Arrivals = sum(Total_Arrivals) )
运行修正后的代码后,将得到你需要的按Airline分组汇总的数据框,字段名和目标结果完全匹配。
内容的提问来源于stack exchange,提问作者g.senorsenor
相关产品推荐
相关产品推荐

