在R中,
%>%
filter(SpecimenDate >= as.Date("2021-10-25") & SpecimenDate <= as.Date("2021-10-31"))提供手动筛选器和
%>%
filter(date == max(date))仅筛选到表中数据的最新日期。
谁能建议如何创建一个在max(日期)和max(日期)-7(即最近7天内的所有值)之间排序的筛选器?
我尝试了以下导致错误的方法:filter() input ..1的问题。我输入的..1是date >= max(date) & date <= max(date - 7)。二进制运算符的X非数字参数
filter(date >= max(date) & date <= max(date-7)谢谢。
发布于 2021-11-04 08:45:51
要过滤最近一天和前7天之间的数据,您只需要一个条件:
filter(date >= (max(date) - 7))这样就有了一个可重现的示例(任何人都可以运行),它演示了相同的概念,但使用了内置的iris数据集
iris %>%
filter(Petal.Length < (max(Petal.Length) - 2))发布于 2021-11-04 08:48:34
这样做是可行的:
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发布于 2021-11-04 08:52:53
您应该检查数据的str,并请提供reproducible example。
dummy <- data.frame(date = seq.Date(as.Date("2020-01-01"), as.Date("2020-01-15"), by = "day"))如果它不是Date格式,它会给出这个错误。
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因为你的情况很奇怪,所以
dummy %>%
mutate(date = as.Date(date))%>%
filter(date >= max(date) & date <= max(date-7))这将返回空的dataframe,但不会重现您的错误。
https://stackoverflow.com/questions/69836429
复制相似问题