设置向量的可接受输入范围

Setting the range of acceptable input for a vector

假设我有一个数值向量,指定 acceptable 范围 input1:4

在下面的示例中,如何获得我的desired_output

acceptable = 1:4

# EX 1:
input = 0:7

desired_output = 1:4


# EX 2:
input = 6
desired_output = 4

我们可以创建一个函数

f1 <- function(inp, accept) {
    out <- intersect(inp, accept)
    if(length(out) == 0) out <- max(accept)
   return(out)
}

-测试

> input <- 6
> f1(input, acceptable)
[1] 4
> input = 0:7
> f1(input, acceptable)
[1] 1 2 3 4