0

我有一个矢量图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))

但这似乎不起作用。我究竟做错了什么?

4

2 回答 2

1

我知道这个答案已经得到解答,但我认为如果可能的话,最好避免嵌套多个ifelse()调用(尽管两个并不算太糟糕)。我会重组你正在做的事情,并说在区间 [-2, 2] 内返回任何内容不变,否则返回-11酌情返回。

ifelse(x >= -2 & x <= 2, x, sign(x))

sign()将给出-1负数和1正数。

于 2013-10-15T09:55:18.087 回答
0

声明的格式ifelseifelse(condition, true, false)。你想要你的第二个ifelse位置false,所以把完整的放在ifelse那里:

ifelse(x>2, 1, ifelse(x<-2,-1,x)))
于 2013-10-15T09:19:49.560 回答