My data are as follows:

site year date
A    2019 2019-08-08
A    2019 2019-08-18
A    2019 2019-10-14
A    2019 2019-10-27
B    2019 2019-08-07
B    2019 2019-08-19
B    2019 2019-10-15
B    2019 2019-10-20
A    2020 2020-08-08
A    2020 2020-08-18
A    2020 2020-10-14
A    2020 2020-10-27
B    2020 2020-08-07
B    2020 2020-08-19
B    2020 2020-10-15
B    2020 2020-10-20

For each year, I would like to subset rows that fulfill the following conditions:

=<October 15 and >=August 15

Thank you in advance!

推荐答案

Convert to yearday and use filter

library(dplyr)
library(lubridate)
df1 %>% 
  mutate(date = ymd(date)) %>% 
  filter(between(yday(date), 228, 289))

-output

 site year       date
1    A 2019 2019-08-18
2    A 2019 2019-10-14
3    B 2019 2019-08-19
4    B 2019 2019-10-15
5    A 2020 2020-08-18
6    A 2020 2020-10-14
7    B 2020 2020-08-19
8    B 2020 2020-10-15

data

df1 <- structure(list(site = c("A", "A", "A", "A", "B", "B", "B", "B", 
"A", "A", "A", "A", "B", "B", "B", "B"), year = c(2019L, 2019L, 
2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2020L, 2020L, 2020L, 
2020L, 2020L, 2020L, 2020L, 2020L), date = c("2019-08-08", "2019-08-18", 
"2019-10-14", "2019-10-27", "2019-08-07", "2019-08-19", "2019-10-15", 
"2019-10-20", "2020-08-08", "2020-08-18", "2020-10-14", "2020-10-27", 
"2020-08-07", "2020-08-19", "2020-10-15", "2020-10-20")), 
class = "data.frame", row.names = c(NA, 
-16L))

R相关问答推荐

bslib::card_header中的shine::downloadButton,图标而不是文本

在使用bslb和bootstrap5时,有没有办法更改特定dt行的 colored颜色 ?

QY数据的处理:如何定义QY因素的水平

在列表中排列R数据框中的列顺序

根据另一列中的值和条件查找新列的值

R -使用矩阵reshape 列表

自动STAT_SUMMARY统计与手动标准误差之间的差异

如何删除R中除数字元素以外的所有元素

将多个列合并为一个列的有效方法是什么?

为什么函数toTitleCase不能处理english(1),而toupper可以?

如何从嵌套数据中自动创建命名对象?在R中

ggplot斜体轴刻度标签中的单个字符-以前的帖子建议不工作

是否从列中删除★符号?

以R表示的NaN值的IS.NA状态

R:水平旋转图

组合预定义美学(Ggplot2)

如何在Rmarkdown中保存绘图?

按多列筛选dplyr中的数据

如何行绑定存储在多级嵌套列表中的数据帧,并为每一级添加标识符列?

迭代筛选器列表