如果在功能范围内

时间:2017-09-09 15:05:13

标签: r

阅读http://adv-r.had.co.nz/Functional-programming.html我正在尝试修改一个函数来更新值向量,其中10替换为110,其他所有值都替换为2.

这是我用10代替10的代码:

replacer <- function(x) {
  x[x == 10] <- 110
  x
}

replacer(c(0, 10))

这是按预期工作并返回0 110但是如何修改以便将值设置为2而不会遇到10?

我试过了:

replacer <- function(x) {
 if (x[x == 10] <- 110)
  x
 else
  2
}

replacer(c(0, 10))

返回相同的结果:0 110但我期待2 110

更新:

使用Sotos评论解决方案是:

replacer <- function(x) {
    ifelse( x == 10, 110, 2) 
}

replacer(c(0, 10))

0 个答案:

没有答案