考虑以下数据集
为什么在进行以下操作时会得到不同的结果:
library(dplyr)
df %>%
filter(!(w >= 1 | lag(w >= 1, default = F))) %>%
filter(lag(t, default = T) != t) %>%
summarise(median = median(r), mad = mad(r))
这将导致:
median mad
1 664 142.3296
并且
df %>%
filter(!(w >= 1 | lag(w >= 1, default = F)),
lag(t, default = T) != t) %>%
summarise(median = median(r), mad = mad(r))
这将会得到:
median mad
1 671 152.7078
lag(t, default=T)
是在原始数据集上运行的。因此,你分别得到了89
和97
行。 - akrun%>%
应当阅读为“然后”。因此,在第一种情况下,您使用第一个条件进行过滤filter(!(w >= 1 | lag(w >= 1, default = F)))
,过滤掉与筛选条件不匹配的所有内容,然后再筛选第二个条件。而在第二种情况下,则是一个大的筛选条件。 - kristang