r - 如何在特定日期 R Studio 之前更改日期格式并从数据框中删除行
问题描述
我有一个包含超过 880 万个观察值的数据框,我需要在某个日期之前从数据框中删除行。目前日期格式为 MM/DD/YYYY,但我想将其转换为 R 日期格式(我相信 YYYY-MM-DD)。
当我运行下面的代码时,它会将它们置于正确的 R 格式中,但它不会保留正确的日期。出于某种原因,它使日期为 2020 年。我的数据框中的日期都没有 2020 年
> dates <- nyc_call_data_sample$INCIDENT_DATETIME
> date <- as.Date(dates,
+ format = "%m/%d/%y")
> head(nyc_call_data_sample$INCIDENT_DATETIME)
[1] "07/01/2015" "04/24/2016" "04/01/2013" "02/07/2015" "06/27/2016" "05/04/2017"
> head(date)
[1] "2020-07-01" "2020-04-24" "2020-04-01" "2020-02-07" "2020-06-27" "2020-05-04"
> nyc_call_data_sample$INCIDENT_DATETIME <- strptime(as.character(nzd$date), "%d/%m/%y")
另外,我的数据可以追溯到 2013 年。我将如何从 2017 年 1 月 1 日之前的数据框中删除所有行
谢谢!
解决方案
as.Date
和基本?Extract
离子是你的朋友。
dat <- data.frame(
unformatted = c("07/01/2015", "04/24/2016", "04/01/2013", "02/07/2015", "06/27/2016", "05/04/2017")
)
dat$date <- as.Date(dat$unformatted, format = "%m/%d/%Y")
dat
# unformatted date
# 1 07/01/2015 2015-07-01
# 2 04/24/2016 2016-04-24
# 3 04/01/2013 2013-04-01
# 4 02/07/2015 2015-02-07
# 5 06/27/2016 2016-06-27
# 6 05/04/2017 2017-05-04
dat[ dat$date > as.Date("2017-01-01"), ]
# unformatted date
# 6 05/04/2017 2017-05-04
(随意删除未格式化的列dat$unformatted <- NULL
。)
与tidyverse
:
library(dplyr)
dat %>%
mutate(date = as.Date(unformatted, format = "%m/%d/%Y")) %>%
select(-unformatted) %>%
filter(date > as.Date("2017-01-01"))
# date
# 1 2017-05-04
推荐阅读
- c# - 在 finally 块中释放时出现 AbandonedMutexException
- docker - 一起停止、升级、启动所有 Docker Stack 服务?
- powerbi - Power BI 矩阵 - 仅显示数值的小计
- javascript - 数据改变时运行函数
- ios - 模块RNPaypalWrapper错误Apple-Mach-O链接器反应本机错误
- php - 如果我单击复选框,则使用 jquery ajax 未显示相关结果
- mysql - 执行永远不会在查询中结束,选择中的 case 条件
- c - 如何获得内部结构的大小
- azure - 无法使用 CustomScriptForLinux 在 Azure VM 上安装 Node.js
- java - 访问 ElasticSearch 无痛脚本化指标聚合参数时出现 NullPointerExceptions