r - 过滤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
很难用特定日期过滤。
任何帮助将非常感激。谢谢!
解决方案
您可以使用lubridate::ymd
将date
列从字符转换为日期,然后使用filter
andlast
仅选择包含数据框中最后一个日期的行:
library(tidyverse)
library(lubridate)
dat %>%
mutate(date = ymd(date)) %>%
filter(date == last(date))
推荐阅读
- python - 使用 python 构建每个区域中的 EC2 实例列表
- php - 将变量从循环传递到函数
- java - Java - 检索文件,计算,输出到另一个文件?
- python - 在服务器上安装包但得到 SyntaxError
- django - mod_wsgi:ImportError:没有名为“encodings”的模块正在部署 django 应用程序
- c - C如何使用esc退出while循环
- node.js - 查找某个时间段内的mongodb数据
- php - SQL 查询在准备好的语句中使用时不起作用,但在 PhpMyAdmin 中起作用
- python - lightfm 错误:并非所有估计的参数都是有限的,您的模型可能已经发散
- mysql - 使用sql查询连接4个表