我曾尝试编写一个简单的代码来计算中位数但我收到了一个错误。 这就是我写的
中位数< -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)])}
这是我得到的错误
错误:“中位数< -function(x){odd.even< -length(x)%% 2 if”
中意外'if'由于
答案 0 :(得分: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)])
}
最后一个返回(x)可能有助于阅读过程,虽然它不是强制性的。