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

R语言按周和年份筛选数据:保留2022年第3周前的数据

按年份和周数筛选数据集

核心筛选逻辑:保留年份小于2022的所有数据,或者年份等于2022但周数小于3的数据,以此过滤掉2022年第3周及之后的所有记录。

dplyr 解决方案

假设你的数据框名为df,包含year(年份列)和week(周数列):

library(dplyr)

filtered_df <- df %>%
  filter(year < 2022 | (year == 2022 & week < 3))

如果你的周数是带前缀的字符型(比如格式为W01、W03),需要先将其转换为数值型再筛选:

filtered_df <- df %>%
  mutate(week = as.numeric(sub("W", "", week))) %>%
  filter(year < 2022 | (year == 2022 & week < 3))

Base R 解决方案

如果不想依赖dplyr,直接用base R的子集操作即可:

filtered_df <- df[df$year < 2022 | (df$year == 2022 & df$week < 3), ]

针对字符型周数的处理:

df$week <- as.numeric(sub("W", "", df$week))
filtered_df <- df[df$year < 2022 | (df$year == 2022 & df$week < 3), ]

示例验证

原始数据集

df <- data.frame(
  year = c(2021, 2022, 2022, 2022, 2023),
  week = c(52, 1, 3, 10, 2),
  value = c(10, 20, 30, 40, 50)
)

筛选后期望输出

#   year week value
# 1 2021   52    10
# 2 2022    1    20

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:04:53