这些是我的事件以及每个事件的 X 和 Y 坐标。如果该事件 = 0 < x < 4 & 0 < y < 4 和前一个事件 = x > 4 & y > 4,我希望将“1”的值分配给一个事件,并分配“0”的值如果不符合标准。这是我的初始表:
Event LocX LocY
1 6 6
2 3 2
3 3 7
4 1 4
5 7 4
6 1 2
7 8 5
8 1 1
我的决赛 table 看起来像:
Event LocX LocY Value
1 6 6 0
2 3 2 1
3 3 7 0
4 1 4 0
5 7 4 0
6 1 2 1
7 8 5 0
8 1 1 1
任何帮助,将不胜感激!
最佳答案
一个 dplyr
方式与 ifelse
.我将数据框命名为 df1
.
library(dplyr)
df1 %>%
mutate(Value = ifelse(LocX > 0 &
LocX < 4 &
LocY > 0 &
LocY < 4 &
lag(LocX) > 4 &
lag(LocY) > 4, 1, 0))
Event LocX LocY Value
1 1 6 6 0
2 2 3 2 1
3 3 3 7 0
4 4 1 4 0
5 5 7 4 0
6 6 1 2 0
7 7 8 5 0
8 8 1 1 1
关于r - 如果行和前一行满足要求,则为行赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46165171/