r - 使 R/lubridate 在几天内持续输出
问题描述
我正在处理日期,我想创建一个专栏来说明事件发生前的天数。然后我想过滤天数。我注意到 lubridate 偶尔会改变我身上的单位(有时是几天,有时是几小时),所以我想让我的代码明确表示我想要它在几天内。
这是一个示例数据集:
library(dplyr)
library(lubridate)
problem <- tibble(location = c("Atlanta, GA", "New York City, NY", "San Francisco, CA"),
travel_date = ymd_hms(c("2018-12-17 02:30:00", "2019-7-17 02:30:00", "2020-12-20 09:30:00")))
为了明确表示我需要几天后的单位,我尝试使用 round_date():
problem %>%
mutate(days_to_deadline = round_date(travel_date - now(), unit = "day")) %>%
filter(days_to_deadline <= 100 & days_to_deadline >= 0)
但我收到此错误:
Error in as.POSIXct.default(x) :
do not know how to convert 'x' to class “POSIXct”
在这种情况下,此代码有效:
problem %>%
mutate(days_to_deadline = round(travel_date - now())) %>%
filter(days_to_deadline <= days(50) & days_to_deadline >= 0)
但同样,我已经看到单位根据输入的内容而变化,所以我想保证 R 是在几天内而不是任何其他时间单位内读取的。
解决方案
推荐阅读
- python - 为什么可以使用 PyCharm 从代码中而不是从 shell 中抑制 InsecureRequestWarning
- aws-cdk - AWS CDK 中是否可以将 CodeBuild 项目与 VPC、子网和安全组相关联?
- python - python: shlex 分裂
- java - maven项目的很多问题
- android - 合并、压缩或如何将流包含或压缩到流中
- c - 如何在 mandelbrot ppm 图像中获得更多细节
- python - NameError:名称“类”未定义
- android-studio - “创建 AVD 时出错。创建 AVD 时出错。有关详细信息,请参阅 idea.log” Studio 版本。3.32 在 Ubuntu 版本中。18.04
- java - 无法使用 StandardPBEStringEncryptor 解密
- google-api - 如何在未经许可的情况下每天获取任何随机 youtube 频道的分析(即观看次数、订阅者)