2014-01-27 3 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

Спасибо. Мне очень глупо забывать о круглых скобках. –

Смежные вопросы