2014-01-07 88 views
0

我想根據條件更改矢量元素。 例如:我有一個載體v<-c(-3,5,-1,7,8,1,10,11),我想生成結果矢量(-1,1,0,1,1,0,1,1) 條件R:根據範圍條件更改矢量

if the element is <-1 then set -1 
if the element is >1 then set 1 
otherwise 0 

我可以通過使用ifelse語句意甲實現這一目標:

v<-c(-3,5,-1,7,8,1,10,11) 
    res<-rep(0,8) 
    res<-ifelse(v<1,-1,res) 
    res<-ifelse(v>1,1,res) 

然而,我認爲應該有一個更優雅和緊湊的方式來做到這一點。 有什麼建議嗎?

感謝

+3

'X [X> 1] < - 1; x [x <-1] < - -1'。這是相當RTFM的東西,我建議你從這裏開始:http://cran.r-project.org/doc/manuals/r-release/R-intro.html –

回答

1
sign(v) * (abs(v) > 1) 
# [1] -1 1 0 1 1 0 1 1 
0
v[v >= -1 & v <= 1] = 0 
v = sign(v)