使用&#34时的意外支架;如果"内功能

时间:2017-11-22 18:18:22

标签: r function

我构造了这个函数,但R给了我错误。但我不知道我做错了什么。

Error: unexpected '}' in "}"

Vect_fun=function(x,a) {
      if(a=1)
      {
       y= mean(x,na.rm=TRUE) 
      }
      else{
        if(a=2)
        {
         y= na.aggregate(x)
        }
        else {
          y=x[!is.na(x)]
        }
      }
      y
    }

2 个答案:

答案 0 :(得分:0)

使用双等号进行比较。

Vect_fun = function(x, a) {
  if (a == 1) {
    y = mean(x, na.rm = TRUE)
  }
  else {
    if (a == 2) {
      y = na.aggregate(x)
    }
    else {
      y = x[!is.na(x)]
    }
  }
  y
}

答案 1 :(得分:0)

除了需要使用正确的==运算符和else if

之外,您的格式设置已关闭

您应该在每个级别缩进,以便更容易阅读,并且您需要将==用于逻辑运算符。此外,else{ if(){ }}很混乱。使用else if{ }

Vect_fun <- function(x,a) {
  if (a == 1) {

    y = mean(x, na.rm = TRUE) 

    } else if (a == 2) {

      y = na.aggregate(x)

      return(y)
      } else { 

        y = x[!is.na(x)] 
      }

  return(y)
}