我正在尝试在R中编写一个带有几个边界的函数。我的主要障碍是编写一个带有“两端”的边界,其中我的变量“ x”大于“第一个边界”且小于“第二个边界”
我得到一个错误,我相信这与边界的语法有关。 有谁知道应该怎么写?
这是我在R中的尝试:
func_Q2 <- function(x)
if (-1 <= x < 0) {x + 1} # first parameter ,the " < 0" does not work
if (0 <= x < 1) {-x + 1} # seccond parameter ,the " < 1" does not work
else {0}
我要写到R中的函数:
答案 0 :(得分:2)
在基数R中,a < b < c
是不可能的,您必须做a < b & b < c
func_Q2 <- function(x){
if (-1 <= x & x < 0) {x + 1}
if (0 <= x & x < 1) {-x + 1}
else {0}
}
func_Q2(-2)
> 0
func_Q2(-0.5)
> 0
func_Q2(0.5)
> 0.5
警告,您的第一个if
不执行任何操作,它永远不会返回。也许第二个if
是else if
答案 1 :(得分:0)
我认为这可以抓住您的意图:
func_Q2 <- function(x){
if (x < -1 || x >= 1) {
0
} else {
1 - abs(x)
}
}