首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DPLYR过滤器按最大日期和最大日期过滤

DPLYR过滤器按最大日期和最大日期过滤
EN

Stack Overflow用户
提问于 2021-11-04 08:41:41
回答 4查看 72关注 0票数 1

在R中,

代码语言:javascript
复制
%>%
  filter(SpecimenDate >= as.Date("2021-10-25") & SpecimenDate <= as.Date("2021-10-31"))

提供手动筛选器和

代码语言:javascript
复制
%>%
  filter(date == max(date))

仅筛选到表中数据的最新日期。

谁能建议如何创建一个在max(日期)和max(日期)-7(即最近7天内的所有值)之间排序的筛选器?

我尝试了以下导致错误的方法:filter() input ..1的问题。我输入的..1date >= max(date) & date <= max(date - 7)。二进制运算符的X非数字参数

代码语言:javascript
复制
filter(date >= max(date) & date <= max(date-7)

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2021-11-04 08:45:51

要过滤最近一天和前7天之间的数据,您只需要一个条件:

代码语言:javascript
复制
filter(date >= (max(date) - 7))

这样就有了一个可重现的示例(任何人都可以运行),它演示了相同的概念,但使用了内置的iris数据集

代码语言:javascript
复制
iris %>% 
  filter(Petal.Length < (max(Petal.Length) - 2))
票数 2
EN

Stack Overflow用户

发布于 2021-11-04 08:48:34

这样做是可行的:

代码语言:javascript
复制
df <- data.frame(c1 = 1:15,
                 c2 = seq.Date(Sys.Date()-14, Sys.Date(), by = 1))
df %>% filter(between(c2, max(c2)-7, max(c2)))
  c1         c2
1  8 2021-10-28
2  9 2021-10-29
3 10 2021-10-30
4 11 2021-10-31
5 12 2021-11-01
6 13 2021-11-02
7 14 2021-11-03
8 15 2021-11-04
票数 2
EN

Stack Overflow用户

发布于 2021-11-04 08:52:53

您应该检查数据的str,并请提供reproducible example

代码语言:javascript
复制
dummy <- data.frame(date = seq.Date(as.Date("2020-01-01"), as.Date("2020-01-15"), by = "day"))

如果它不是Date格式,它会给出这个错误。

代码语言:javascript
复制
dummy %>%
  mutate(date = as.character(date))%>%
  filter(date >= max(date) & date <= max(date-7))
Error: Problem with `filter()` input `..1`.
i Input `..1` is `date >= max(date) & date <= max(date - 7)`.
x non-numeric argument to binary operator

因为你的情况很奇怪,所以

代码语言:javascript
复制
dummy %>%
  mutate(date = as.Date(date))%>%
  filter(date >= max(date) & date <= max(date-7))

这将返回空的dataframe,但不会重现您的错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69836429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档