首页 > 解决方案 > 过滤r中的最新日期

问题描述

我想知道是否有办法过滤因子的最新日期并返回与之匹配的金额。

这是我的数据框:

dat <- data.frame(
  time = factor(c("Breakfast","Breakfast","Breakfast","Breakfast","Breakfast","Breakfast"), levels=c("Breakfast")), date=c("2020-01-20","2020-01-21","2020-01-22","2020-02-10","2020-02-11","2020-02-12"),
  total_bill = c(12.7557,14.8,17.23,15.7,16.9,13.2)
)

我们知道最新日期是2020-02-12,我不想写特定的过滤器,比如filter(date %in% "2020-02-12")数据框是否在一天后更新,这样2020-02-13很难用特定日期过滤。

任何帮助将非常感激。谢谢!

标签: rfilter

解决方案


您可以使用lubridate::ymddate列从字符转换为日期,然后使用filterandlast仅选择包含数据框中最后一个日期的行:

library(tidyverse)
library(lubridate)

dat %>%
  mutate(date = ymd(date)) %>%
  filter(date == last(date))

推荐阅读