R 数据框中的滚动条件 ifelse
Roll condition ifelse in R data frame
我在 R 中有一个包含两列的数据框,我想创建第三列,该列将在两列中滚动 2 并检查是否满足下面 table 中所述的条件.
条件是一个滚动的 ifelse 并且是这样的:
IF -A1
IF -A2
IF -A3
IF -A4
A
B
CHECK
1
4
NA
2
5
NA
3
6
FALSE
4
1
TRUE
5
-4
FALSE
6
1
TRUE
我如何在 R 中做到这一点?是否有基本的 R 函数或在 dplyr 框架内?
由于 R 是向量化的,您可以使用一个命令来实现,例如 dplyr::lag
:
library(dplyr)
df %>%
mutate(CHECK = -lag(A, n=2) < B & lag(A, n=2) > B)
A B CHECK
1 1 4 NA
2 2 5 NA
3 3 6 FALSE
4 4 1 TRUE
5 5 -4 FALSE
6 6 1 TRUE
我在 R 中有一个包含两列的数据框,我想创建第三列,该列将在两列中滚动 2 并检查是否满足下面 table 中所述的条件. 条件是一个滚动的 ifelse 并且是这样的:
IF -A1 IF -A2 IF -A3 IF -A4 我如何在 R 中做到这一点?是否有基本的 R 函数或在 dplyr 框架内?
A
B
CHECK
1
4
NA
2
5
NA
3
6
FALSE
4
1
TRUE
5
-4
FALSE
6
1
TRUE
由于 R 是向量化的,您可以使用一个命令来实现,例如 dplyr::lag
:
library(dplyr)
df %>%
mutate(CHECK = -lag(A, n=2) < B & lag(A, n=2) > B)
A B CHECK
1 1 4 NA
2 2 5 NA
3 3 6 FALSE
4 4 1 TRUE
5 5 -4 FALSE
6 6 1 TRUE