2014-01-07 7 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)