R功能有问题

时间:2014-01-27 09:14:58

标签: r function

我尝试创建一个函数。但是当我更改它的序列时,它会创建NA值。有什么特别的理由吗?感谢

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

1 个答案:

答案 0 :(得分: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)  
}