我有一个矢量图x<-rnorm(100)
我想申请以下条件:
if any element of x is larger than 2 -> 1.
if any element of x is smaller than -2 -> -1.
otherwise keep x.
我试过了:
ifelse(x>2,1, ifelse(x<-2,-1),x))
但这似乎不起作用。我究竟做错了什么?
我有一个矢量图x<-rnorm(100)
我想申请以下条件:
if any element of x is larger than 2 -> 1.
if any element of x is smaller than -2 -> -1.
otherwise keep x.
我试过了:
ifelse(x>2,1, ifelse(x<-2,-1),x))
但这似乎不起作用。我究竟做错了什么?
我知道这个答案已经得到解答,但我认为如果可能的话,最好避免嵌套多个ifelse()
调用(尽管两个并不算太糟糕)。我会重组你正在做的事情,并说在区间 [-2, 2] 内返回任何内容不变,否则返回-1
或1
酌情返回。
ifelse(x >= -2 & x <= 2, x, sign(x))
sign()
将给出-1
负数和1
正数。
声明的格式ifelse
是ifelse(condition, true, false)
。你想要你的第二个ifelse
位置false
,所以把完整的放在ifelse
那里:
ifelse(x>2, 1, ifelse(x<-2,-1,x)))