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

如何在R DataFrame中筛选每月20日至25日的数据?

在R中筛选DataFrame仅保留每月20日至25日的数据

方法一:Base R(无需额外安装包)

先构建示例数据:

df <- data.frame(
  Event = c("Football", "Work", "Holiday", "Running"),
  Date = c("20.12.2016", "15.10.2019", "30.11.2018", "24.01.2020")
)

步骤:

  1. 将字符型日期转换为R的日期格式
  2. 提取日期中的“日”部分
  3. 筛选日数在20-25之间的行

代码实现:

# 转换日期格式
df$Date <- as.Date(df$Date, format = "%d.%m.%Y")
# 提取日并转为整数
df$day <- as.integer(format(df$Date, "%d"))
# 筛选目标数据,保留Event和Date列
filtered_df <- df[df$day >= 20 & df$day <= 25, c("Event", "Date")]

方法二:Tidyverse(dplyr + lubridate)

这种方式代码更简洁,适合处理大型数据集:

先加载所需包(如果未安装,先运行install.packages(c("dplyr", "lubridate"))):

library(dplyr)
library(lubridate)

然后用管道操作完成转换和筛选:

filtered_df <- df %>%
  mutate(Date = dmy(Date)) %>%  # 自动识别dd.mm.yyyy格式的日期
  filter(between(day(Date), 20, 25))  # 筛选日数在20到25之间的记录

注意事项

  • 如果你的Date列已经是R的日期类型(而非字符型),可以跳过日期转换步骤,直接提取日数进行筛选。
  • 两种方法最终得到的filtered_df就是你需要的结果:
> filtered_df
      Event       Date
1 Football 2016-12-20
2  Running 2020-01-24

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:35:36