【发布时间】:2022-01-17 14:13:29
【问题描述】:
假设我有一个数据框df,如下所示:
df <- structure(list(date = c("2021-10-1", "2021-10-2", "2021-10-3",
"2021-10-4", "2021-10-5", "2021-10-6", "2021-10-7", "2021-10-8",
"2021-10-9"), value = c(190.3, 174.9, 163.2, 168.4, 168.6, 168.2,
163.5, 161.6, 172.9), type = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L)), class = "data.frame", row.names = c(NA, -9L))
我尝试过滤满足两个条件(或条件,而不是和)的行:
type==2-
type==1和max(date)。
我的试用码:
df$date <- as.Date(df$date)
方法一:
df[type==2 | date==max(df[type==1]$date)]
输出:
Error in `[.data.frame`(df, type == 2 | date == max(df[type == 1]$date)) :
object 'type' not found
方法二:
df %>%
filter(type==2|date==max(df[type==1]$date))
输出:
Error: Problem with `filter()` input `..1`.
i Input `..1` is `type == 3 | date == max(df[type == 2]$date)`.
x undefined columns selected
但是当我在来自this link 的代码geom_point(data=df[type==3 | date==max(df[type==2]$date)],size=2, aes(shape=type)) 中使用时,它可以解决。
预期结果:
我想知道如何使用上述两种方法正确过滤?谢谢。
【问题讨论】: