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

时间:2019-04-27 16:19:14

标签: r function if-statement

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

#include <stdio.h>
int main() {
    int a,b,c,d;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    printf("the enter no.: is %d %d %d %d\n",a,b,c,d);
    if(a > b && a > c && a > d)
        printf("%d is greater\n", a);
    else if(b > a && b > c && b > d)
        printf("%d is greater\n", b);
    else if(c > a && c > b && c > d)
        printf("%d is greater\n", c);
    else
        printf("%d is greater\n", d);
    return 0;
}

第二个功能如果需要输入字符/文本,则需要打印“有效”,如果是整数,则不输出任何内容。

   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)

   }

我的问题是如何将这两个功能合而为一?我已经尝试了多种方法(未显示),但是似乎没有任何效果。我需要一个函数,例如叫做compare,它具有两个类似的参数:

   compare2 <- function(y) {

   if (!is.numeric(y))  {
   result = "valid" 
   }

   else if (!is.numeric(y)) {
   result = ""
   }

   print(result)

   } 

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

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

2 个答案:

答案 0 :(得分:2)

尝试一下:

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

答案 1 :(得分:1)

像这样?尽管我猜期望的输出也可以通过其他方式实现。

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=", "))
}