ваша ошибка в этой строке
for (i in 1:length(c)-1)
и должна быть
for (i in 1:(length(c)-1))
, так как оператор $: $ предшествует $ - $.
пример:
1:(5-1)
#[1] 1 2 3 4
1:5-1
#[1] 0 1 2 3 4
, поэтому в индексе возникает ошибка с нулевым значением.
csort <- function(d){
for (i in 1:(length(d)-1)) {
for (j in (i+1):length(d)) {
if(d[i] >= d[j])d[c(i,j)] <- d[c(j,i)]
}
}
return(d)
}
d<-c(5:1,-1:3,-9,-3,10,9,-20,1,20,-6,5)
any((csort(d)==sort(d))==F)
#[1] FALSE
Вы можете улучшить эту функцию.