我想根据条件更改矢量元素。
例如:我有一个向量v<-c(-3,5,-1,7,8,1,10,11)
,我希望生成向量(-1,1,0,1,1,0,1,1)
条件是
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)
我认为应该有更优雅和紧凑的方式来做到这一点。 有什么建议吗?
感谢
答案 0 :(得分:1)
sign(v) * (abs(v) > 1)
# [1] -1 1 0 1 1 0 1 1
答案 1 :(得分:0)
v[v >= -1 & v <= 1] = 0
v = sign(v)