2014-01-27 178 views
0

我尝试创建一个功能。但是当我改变它的顺序时,它会创建NA值。有什么特别的原因呢?由于R功能故障

new<-function(x){ 
    min2<-NULL 
    min1<-NULL 
    len<-length(unique(x)) 
for (i in 1:(len-1)) 
    min2[i]<-sort(x,partial=(len-i+1))[(len-i+1)] 
    min1[i]<-sort(x,partial=(len-i)) [(len-i)] 
    return((min1)) 
} 


x<-c(1,11,40,120) 

new(x) 

[1] 120 40 11 




new<-function(x){ 
    min2<-NULL 
    min1<-NULL 
    len<-length(unique(x)) 
for (i in 1:(len-1)) 
    min1[i]<-sort(x,partial=(len-i)) [(len-i)] 
    min2[i]<-sort(x,partial=(len-i+1))[(len-i+1)] 
    return((min1)) 
} 


x<-c(1,11,40,120) 

new(x) 

[1] NA NA 11 

回答

3

你忘了你身边想你for循环重复表达花括号:

new<-function(x){ 
    min2<-NULL 
    min1<-NULL 
    len<-length(unique(x)) 
    for (i in 1:(len-1)) { 
     min2[i]<-sort(x,partial=(len-i+1))[(len-i+1)] 
     min1[i]<-sort(x,partial=(len-i)) [(len-i)] 
    } 
    return(min1) 
} 
+0

谢谢。我很遗憾忘记括号。 –