【发布时间】:2021-12-22 14:26:17
【问题描述】:
我有一个包含超过 500k 行的日期框,我需要删除日期小于代码运行日期 90 天的所有行(系统日期/时间)
| Name | Date. |
|---|---|
| Tom | 16/07/20 |
| Dave | 10/04/21 |
【问题讨论】:
-
非常感谢会做
我有一个包含超过 500k 行的日期框,我需要删除日期小于代码运行日期 90 天的所有行(系统日期/时间)
| Name | Date. |
|---|---|
| Tom | 16/07/20 |
| Dave | 10/04/21 |
【问题讨论】:
dat$Date. <- as.Date(dat$Date., format = "%d/%m/%y")
dat
# Name Date.
# 1 Tom 2020-07-16
# 2 Dave 2021-04-10
difftime(Sys.Date(), dat$Date., units = "days")
# Time differences in days
# [1] 481 213
subset(dat, difftime(Sys.Date(), Date., units = "days") > 300)
# Name Date.
# 1 Tom 2020-07-16
您的示例数据没有显示您的“90天”,所以我将其更改为“300天”以显示过滤效果。
其他方式:
dat[difftime(Sys.Date(), dat$Date., units = "days") > 300,]
# Name Date.
# 1 Tom 2020-07-16
library(dplyr)
dat %>%
filter(difftime(Sys.Date(), Date., units = "days") > 300)
# Name Date.
# 1 Tom 2020-07-16
【讨论】: