【发布时间】:2021-01-12 10:16:23
【问题描述】:
我提出了一个类似的问题:If condition is met, go 6 rows above and select the value in R,我得到了一个非常有用的答案。
现在我尝试调用而不是像上一个主题中那样调用 1 个值,而是调用多行。
样本数据:
md2 <- structure(list(Hdwy = c(45.01, 45.03, 449, 44.46, 43.63, 425,
41.36, 40.53, 40.1, 39.97, 39.98, 40, 40, 40, 40, 41.36, 40.53,
40.1, 40, 40), L_ID = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1)), class = "data.frame", row.names = c(NA,
-20L))
我用过:
library(dplyr)
spc <- md2 %>%
mutate(Lag = lag(Hdwy, (1:6)) %>%
filter(L_ID==1) %>%
pull(Lag)
spc
期待看到:
> spc 44.46, 43.63, 425,
> 41.36, 40.53, 40.1
但我得到了错误:
错误:
mutate()输入Lag有问题。 xn必须是 非负整数标量,不是长度为 200 的整数向量。 i 输入Lag是`lag(Hdwy, (1:6))
有什么想法吗?我应该改用其他函数吗?
【问题讨论】: