【发布时间】:2021-12-19 01:32:55
【问题描述】:
我有一个包含多年数据的数据框。我正在尝试过滤这些年份中的每一年的特定日期,但我不确定如何执行此操作。在下面的代码中,我已经过滤了一年的数据,以找出两个不同范围内的数据(即df2 和df3)。我如何修改此代码以适用于我数据集中的所有年份?
我希望代码使用该范围内的所有日期过滤IDs,并且不包含该范围内缺少一天的任何数据。
library(dplyr)
library(lubridate)
ID <- rep(c("A","B","C", "D"), 5000)
date <- rep_len(seq(dmy("01-01-2010"), dmy("31-01-2015"), by = "days"), 5000)
x <- runif(length(date), min = 60000, max = 80000)
y <- runif(length(date), min = 800000, max = 900000)
df <- data.frame(date = date,
x = x,
y =y,
ID)
df2 <- df %>%
filter(date >= "2010-01-01", date <= "2010-01-31")
df3 <- df %>%
filter(date >= "2010-07-01", date <= "2010-07-31")
【问题讨论】:
-
您是只寻找两个数据集还是每年寻找两个?
-
每年两次,因此每年将过滤指定日期,从而产生一个包含每年所有指定日期的数据集。
-
我问的原因是因为它可以是所有年份的两个数据集,而不是多个数据
-
我想这对我来说可能更容易使用。它会与您提供的答案稍有相同并进行一些修改吗?
-
那将是创建另一个与年份相同的列,但这也应该考虑到闰年,所以您可以查看我的解决方案中的更新