我有一列日期,如何筛选特定日期之前的日期?R



这是我的数据

print(data)
mydates
1   9/17/2019
2   3/8/2020
3   9/20/2020
4   7/19/2020
5   10/22/2020
6   9/12/2020

我想过滤一下,这样我只能看到9月份的日期,但它不起作用。

这是我的代码

data$mydates <- as.Date(data$mydates, format = "%m/%d/%Y")
Septdata <- data %>% filter(mydates < '2020-01-09')
```
Is this correct?
library(lubridate)
df <- setDT(your_dataset)
df_sep <- df[mydates >= as.Date('2020-09-01') & mydates <= as.Date('2020-09-30')]

如果您想在两个日期之间进行筛选,另一个选项是使用dplyr包:

data%>% filter(mydate >= as.Date("2020-09-01") & mydate <= as.Date("2020-01-09"))

使用subsetbase R

subset(data, mydate >= as.Date("2020-09-01") & mydate <= as.Date("2020-01-09"))

您可以将mydate转换为日期类并过滤特定月份和/或年份的

如果你想要"九月"中的所有日期:

data$mydates <- as.Date(data$mydates, format = "%m/%d/%Y")
subset(data, as.integer(format(mydates, '%m')) == 9)
#     mydates
#1 2019-09-17
#2 2020-09-20
#3 2020-09-12

如果你想要2020年9月的所有日期

subset(data, as.integer(format(mydates, '%m')) == 9 & 
as.integer(format(mydates, '%Y')) == 2020)
#     mydates
#1 2020-09-20
#2 2020-09-12

您可以使用dplyr+lubridate:实现相同的逻辑

library(dplyr)
library(lubridate)
data %>%
mutate(mydates = mdy(mydates)) %>%
filter(month(mydates) == 9)

data %>%
mutate(mydates = mdy(mydates)) %>%
filter(month(mydates) == 9 & year(mydates) == 2020)

相关内容

  • 没有找到相关文章

最新更新