将基本代码行转换为R中的函数

时间:2014-05-03 17:33:15

标签: r function

我已经编写并成功执行了基本的代码行:

if((new.weather.2013) > cut.point.90 | (new.weather.2013) < cut.point.015) {print("Weather is extreme")} else {print("Weather is not extreme")}

我想把它变成一个可重复的功能。我对R来说还是比较陌生的,我很难让它运转起来。这是我到目前为止尝试过的(没有奏效):

weather.test <- function(test.weather)
{
  if((test.weather) > cut.point.90 |
       (test.weather) < cut.point.015)
return{print ("Weather is extreme")} else
return{print ("Weather is not extreme")}
}

有人能指出我正确的方向吗?

编辑:详细说明,我正在取一个数值,在函数中运行它以确定该值是否是一个极端异常值(即落在切割点之外)。如果它确实超出了这些点,那么它被认为是极端的,我想要返回那个声明。如果它不超出这个极端范围,那就认为是正常的,我想回归“天气不是极端”。如果你看到上面的陈述,那就像我在这里做的那样;我只是想让它成为一个可重复的功能。

1 个答案:

答案 0 :(得分:3)

我想你想要

weather.test <- function(test.weather) {
  ifelse((test.weather > cut.point.90 |
       test.weather < cut.point.015),
      "Weather is extreme",
      "Weather is not extreme")
}

#test
cut.point.90 = .9
cut.point.015 = .015
weather.test(c(0,.5,1))

ifelse()是可以对向量进行操作的标准if语句的向量化形式