使用if / else在R中使用函数

问题描述 投票:0回答:1

我试图编写一个简单的代码来计算中位数,但出现错误。这是我写的

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)])}

这是我得到的错误

错误:“中位数

谢谢

r function if-statement
1个回答
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)可能有助于阅读过程。

© www.soinside.com 2019 - 2024. All rights reserved.