You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何对数据框列表按Year列的最大值进行切片筛选

方法1:基础R实现(无需额外依赖)

直接使用内置的lapply遍历列表,逐一对每个dataframe做筛选即可:

result <- lapply(l, function(df) {
  # 筛选Year等于最大值的行,存在多个最大值行时会全部返回
  df[df$Year == max(df$Year), ]
})

# 查看结果
print(result)

如果只需要保留第一个匹配最大Year的行,调整写法为:

result <- lapply(l, function(df) {
  df[df$Year == max(df$Year), ][1, ]
})

方法2:tidyverse 生态实现

如果你习惯使用dplyr、purrr的工具链,可使用以下写法:

# 先加载依赖包
library(dplyr)
library(purrr)

result <- l %>% 
  map(~ filter(.x, Year == max(Year)))

如果需要将所有切片结果合并为一个完整的dataframe,把map替换为map_dfr即可自动完成行拼接:

merged_result <- l %>% 
  map_dfr(~ filter(.x, Year == max(Year)))

内容的提问来源于stack exchange,提问作者ph_9933

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:24:04