一个简单的范围内功能

时间:2016-02-21 23:28:08

标签: r function

我正在尝试创建一个简单的函数,当你输入三个数字时 - x - 任何数字变量,y和z - 范围的最小值和最大值 该函数将返回一条消息,告诉您该号码是否在范围内。我应该在函数

中使用x % in range的特定公式
inrange = function(x, y, z){
range = y:z
if (x % in range)
   print("number is in range")
   else print("number is not in range")
}

当我尝试此代码时,我返回时出现错误,表示无法识别结束括号。这是为什么?

1 个答案:

答案 0 :(得分:1)

这是一个矢量化版本,不仅适用于步长函数为1的序列。它返回x范围内的索引

inrange <- function(x, y, z) {
    y <- rep(y, length=length(x)) # To fix partial recycling of y/z
    (x>=pmin(y,z)) * (x<=pmax(y,z))
}

这使您可以执行以下操作:

> inrange(1:10, 3, 7)
 [1] 0 0 1 1 1 1 1 0 0 0