带有两个参数 if 语句的 R 函数



我正在尝试编写一个函数,该函数接受两个参数,并产生两个结果。第一个函数需要将整数与 100 进行比较,并为文本提供"无效"。这是代码:

   compare <- function(x) {
   if (!is.numeric(x))  {
   result = "invalid" 
   }
   else if (x>100) {
   result = "Pass"
   }
   else if (x<100) {
   result = "Fail"
   }
   else if (x==100) {
   result = "Neutral"
   }
   print(result)
   }

第二个函数需要打印"有效",如果字符/文本,则不提供任何内容。

   compare2 <- function(y) {
   if (!is.numeric(y))  {
   result = "valid" 
   }
   else if (!is.numeric(y)) {
   result = ""
   }
   print(result)
   } 

我的问题是如何将这两个功能合二为一?我已经尝试了多种方法(未显示(,但似乎没有任何效果。我需要一个函数,例如称为比较,它有两个参数,如下所示:

 compare <- function(x,y) {....
 }

我的问题是我不知道如何将这两个参数组合成一个功能块。输出应如下所示:

 compare(10,"text") ===> "fail","valid"
 compare(100, 90) ===> "neutral"
 compare("text","text") ==> "invalid","valid"

试试这个:

compare <- function(x,y) {
  if (!is.numeric(x))  {
    result = "invalid" 
  }
  else if (x>100) {
    result = "Pass"
  }
  else if (x<100) {
    result = "Fail"
  }
  else if (x==100) {
    result = "Neutral"
  }
  if (!is.numeric(y))  {
    paste(result,'valid', sep = ", ", collapse = NULL)
  }
  else if (!is.numeric(y)) {
    paste(result,'', sep = "", collapse = NULL)
  }
}

像这样的东西?虽然我想也可以通过其他方式实现所需的输出。

compare <- function(x,y) {
result1=vector()
if (!is.numeric(x))  {
result1 <- c(result1,"valid")
}
else if (x>100) {
result1 <- c(result1,"Pass")
}
else if (x<100) {
result1 <- c(result1,"Fail")
}
else if (x==100) {
result1 <- c(result1,"Neutral")
}
 if (!is.numeric(y))  {
result1 <- c(result1,"valid")
}
 cat(paste(shQuote(result1, type="cmd"), collapse=", "))
} 

最新更新