R语言按用户列分组查询time_1列最小值的实现方法
R语言按分组求指定列最小值的实现方案
核心注意点:你的time_1列存在空值NA,计算最小值时需要添加na.rm = TRUE参数跳过空值,否则分组计算结果会返回NA。
方法1:dplyr包实现(最常用的分组操作方案)
# 未安装包先运行 install.packages("dplyr") library(dplyr) result <- df %>% group_by(user) %>% summarise(min_time1 = min(time_1, na.rm = TRUE)) print(result)
方法2:Base R原生实现(无需安装额外依赖)
result <- aggregate(time_1 ~ user, data = df, FUN = min, na.rm = TRUE) print(result)
方法3:data.table实现(适合处理百万级以上大数据量)
# 未安装包先运行 install.packages("data.table") library(data.table) setDT(df) result <- df[, .(min_time1 = min(time_1, na.rm = TRUE)), by = user] print(result)
最终输出结果
# A tibble: 3 × 2 user min_time1 <dbl> <dbl> 1 1 120 2 2 841 3 3 612
内容的提问来源于stack exchange,提问作者juanjedi
相关产品推荐
相关产品推荐

