R语言对nycflights13的planes数据按引擎和制造商分组求生产年份极值
解决方案
你之前使用的table()仅支持频次统计,无法直接计算描述性统计量;tapply()更适配单分组变量场景,双分组场景下实现该需求会比较繁琐,以下是两种可行实现方案:
方案1:tidyverse生态dplyr实现(推荐,语法更直观)
# 加载依赖包 library(nycflights13) library(dplyr) # 分组统计 planes_stat <- planes %>% group_by(engine, manufacturer) %>% summarise( 最早生产年份 = min(year, na.rm = TRUE), 生产年份中位数 = median(year, na.rm = TRUE), 最晚生产年份 = max(year, na.rm = TRUE), .groups = "drop" # 统计完成后自动取消分组 ) # 查看结果前几行 head(planes_stat)
参数na.rm = TRUE用于忽略生产年份的缺失值,避免统计结果返回NA,如果你需要过滤掉所有生产年份为空的分组,可以在group_by前添加filter(!is.na(year))代码段。
方案2:基础R实现(无需额外安装第三方包)
library(nycflights13) data(planes) planes_stat <- aggregate( year ~ engine + manufacturer, # 格式为「统计变量~分组变量」 data = planes, FUN = function(x) c( 最早生产年份 = min(x, na.rm = TRUE), 生产年份中位数 = median(x, na.rm = TRUE), 最晚生产年份 = max(x, na.rm = TRUE) ) ) # 查看结果前几行 head(planes_stat)
内容的提问来源于stack exchange,提问作者KacZdr
相关产品推荐
相关产品推荐

