wr<-function(x){
n<-length(x);y<-1:n;
k<-1;i<-1;bt<-0;
while(i<n){
while(abs(x)==abs(x[i+1])){
i<-i+1;
k<-k+1;
bt<-1;
}
if(bt){
y[(i-k+1):i]<-sum(y[(i-k+1):i])/k;
k<-1;
bt<-0;
}
i<-i+1;
}
for(m in 1:n) if(x[m]<0) y[m]<-(-y[m])
return(y)
}
参数x是一个向量,夸张的事情是,
当我输入一个向量时,比如 v<-c(4.12,5.81,7.63,9.74,10.39,11.92,12.32,12.89,13.54,14.45),
然后再调用wr(v),函数可以正常运行,
可是当这个v 向量是其他的向量的运算得到的,比如 v<-a+b a,b是两个相同长度向量的,
这时候在调用 wr(v)就会出错,
报出“错误于while (abs(x) == abs(x[i + 1])) { : 需要TRUE/FALSE值的地方不可以用缺少值>
这个到底什么意思啊,我晕,搞得我半夜都睡不着
真的想不通这有什么区别吗?
怎么运算得到的就不行,非要亲自打进去才行啊?
求各位指点,,谢谢了啊,,,,,