我在创建公式时遇到了一些问题,该公式比较两个数字并在最后程序对所有数字进行排序。我创建(拥有)一个x
带有值的向量:x <- c(5, 10, 2, 35, 1)
和带有名称的函数: SortFunc(x)
最后的结果应该是这样的:
[1] 1 2 5 10 35
我做了这个功能:
SortFunc <- function(x) {
n <- length(x)
repeat {
spr <- FALSE
n <- n-1
for(i in 1:n) {
if ( x[i] > x[i+1] ) {
t <- x[i]
x[i] <- x[i+1]
x[i+1] <- t
spr <- TRUE
}
}
if (!spr) break;
}
x
}
当我运行时SortFunc(x)
,我收到此错误:
Error in if (x[i] > x[i + 1]) { : argument is of length zero
有没有人解决?如果我像 * 那样改变矢量,x <- c(5,8,7,30,1,100)
我会得到真正的解决方案([1] 1 5 7 8 30 100)