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

如何用filter()和lubridate筛选数据集每年的首个观测值?

筛选年度首个蚂蚁观测值的实现方法

所需工具包

需要用到dplyr(数据处理)和lubridate(日期处理),如果未安装先运行:

install.packages(c("dplyr", "lubridate", "ggplot2"))

步骤实现

  1. 加载包并转换日期格式
    先把Observation列转换为标准日期格式,方便后续年份提取和比较:
library(dplyr)
library(lubridate)

# 转换日期列格式
Df_Ant_Observations <- Df_Ant_Observations %>% 
  mutate(Observation = ymd(Observation))
  1. 分组筛选年度首个观测值
    按年份分组,筛选出每组中日期最早的记录(即年度首个观测值):
annual_first_obs <- Df_Ant_Observations %>% 
  group_by(year(Observation)) %>% 
  filter(Observation == min(Observation)) %>% 
  ungroup()

解释:year(Observation)提取日期中的年份作为分组依据,min(Observation)得到该年最早的观测日期,filter保留等于这个日期的行,ungroup取消分组避免后续操作受分组影响。

ggplot绘图示例

用筛选后的数据集绘制年度首个观测日期的变化趋势:

library(ggplot2)

# 提取单独的年份列,让绘图更直观
annual_first_obs <- annual_first_obs %>% 
  mutate(Year = year(Observation))

# 绘制折线+散点图
ggplot(annual_first_obs, aes(x = Year, y = Observation)) +
  geom_point(size = 3, color = "#2ca02c") +
  geom_line(color = "#2ca02c", linewidth = 1) +
  labs(title = "蚂蚁年度首个观测日期变化", 
       x = "年份", 
       y = "首个观测日期") +
  theme_bw()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:20:06