具有多个条件的虚拟变量

Dummy variable with multiple conditions

假设我有一个包含 2 列的数据框“df”:x 和 y。它们包含数字实数(正数和负数)。我需要创建一个名为 dummy_var 的虚拟变量,它遵循以下条件:

dummy_var = 1 如果,-100 < x < -90,-80 < x < -50,且 50 < y < 45

dummy_var = 0,否则

这是我试过的:

df$dummy_var = 0
df$dummy_var[df$y > 50, df$y < 45 , df$x > -100,df$x < -90, df$x > -80 
& df$x < -50 ] = 1

在关系运算符之后放置减号后出现错误。不确定如何调试它。

incorrect number of subscripts on matrix
Traceback:

另外,我写的代码可能效率低下。所以,如果您有更好的代码编写建议,那也将非常有帮助。

我们可以使用 |& 来创建逻辑表达式

i1 <- with(df, (x > -100  & x <- 90)|(x > -80 & x < -50)|(y > 50 & y < 45))
df1dummy_var[i1] <- 1