具有多个条件的虚拟变量
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
假设我有一个包含 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