r - 如果行和前一行满足要求,则为行赋值

标签 r dataframe

这些是我的事件以及每个事件的 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/

相关文章:

在 R 中运行 Maxent

按组返回列中最常见的值,用该值替换该列中的 null

r - 形式的奇怪失败()

python - 计算百分比变化(多变量)Pandas

python - 使用 python 重新采样数据帧

python - 如何使用 .agg 方法计算 pandas 中的列平均值

r - 根据项目特定设置函数默认值 R

r - Tidymodels tune_grid : "Can' t subset columns that don't exist"when not using formula

python - 连接两个不同大小的数据框,但只想添加一个新列

Python数据框组合前两列值相反的行