我试图编写一个简单的代码来计算中位数,但出现错误。这是我写的
median<-function(x){odd.even<-length(x)%%2 if (odd.even = = 0)(sort(x)[length(x)/2]+sort(x)[1+length(x)/2])/2 else (sort(x)[ceiling(length(x)/2)])}
这是我得到的错误
错误:“中位数
谢谢
尝试一下(您忘记了方括号{)
median<-function(x){
odd.even<-length(x)%%2
if (odd.even == 0){
(sort(x)[length(x)/2]+sort(x)[1+length(x)/2])/2
} else {
(sort(x)[ceiling(length(x)/2)])
}
}
正如所指出的,如果您不想使用方括号,可以始终在if语句上添加新行:
median<-function(x){
odd.even<-length(x)%%2
if (odd.even == 0) (sort(x)[length(x)/2]+sort(x)[1+length(x)/2])/2 else (sort(x)[ceiling(length(x)/2)])
}
另外,尽管不是强制性的,但最后一个return(x)可能有助于阅读过程。