我正在尝试编写一个函数,该函数接受两个参数,并产生两个结果。第一个函数需要将整数与 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=", "))
}