在R语言中,可以使用dplyr
包中的filter()
函数和arrange()
函数来实现按组筛选和按时间排序的功能。以下是一个代码示例:
# 导入dplyr包
library(dplyr)
# 创建示例数据框
data <- data.frame(
group = c("A", "A", "B", "B", "B", "C", "C", "C"),
date = c("2022-01-01", "2022-02-01", "2022-01-01", "2022-02-01", "2022-03-01", "2022-01-01", "2022-02-01", "2022-03-01"),
value = c(1, 2, 3, 4, 5, 6, 7, 8)
)
# 将日期列转换为日期格式
data$date <- as.Date(data$date)
# 按组筛选最近3个月的前3条记录
result <- data %>%
group_by(group) %>%
arrange(desc(date)) %>%
filter(date >= Sys.Date() - months(3)) %>%
slice(1:3)
# 输出结果
print(result)
上述代码首先导入了dplyr
包,然后创建了一个示例数据框data
,其中包含三列:group
表示组别,date
表示日期,value
表示数值。
接下来,将日期列date
转换为日期格式,然后使用dplyr
中的函数链操作符%>%
,对数据框进行按组分组、按日期降序排序、按日期筛选最近3个月的记录、保留每组的前3条记录。
最后,将结果赋值给result
,并打印输出。输出结果为按组筛选最近3个月的前3条记录的数据框。
上一篇:按组筛选数据并保留空组
下一篇:按组删除给定日期之前的观察数据