首页 > 解决方案 > 向量的条件更新

问题描述

我想根据它的值更新一个向量:

如果f < 50,那么x = f - 1

如果f > 50,那么 y = f + 1

如果f == 50,则将该值设置为零

f <- seq(0, 100, by = 5)

我试图用 解决它if,但结果并不好。

if (f<50)
{
  f = z
  x= z-1
  x
}
if (f>50)
{
  f = c
  y= c+1
  y
}

标签: rconditional-statements

解决方案


您可以使用嵌套ifelse

ifelse(f < 50, f - 1, ifelse(f > 50, f + 1, 0))

或者可能使用case_when其中您可以添加多个条件。

dplyr::case_when(f < 50 ~ f - 1, 
                 f > 50 ~ f + 1, 
                 f == 50 ~ 0)

推荐阅读