我在 R 中有一个函数可以调用其他函数。有时,这些函数可以返回相同的消息。我只想将消息打印一次。处理这个问题的最佳方法是什么?
在下面的示例中,
functionC
将打印“The value is 5”。如果 b 和 c 的参数为 5,则打印两次。我只想打印一次。
functionA <- function(a){
if(a==5){
message("The value is 5.")
}
return(a-2)
}
functionB <- function(b){
if(b==5){
message("The value is 5.")
}
return(b+7)
}
functionC <- function(a,b){
a <- functionA(a)
b <- functionB(b)
c <- rbind(a,b)
return(c)
}
functionC(5,5)
抑制 functionA/functionB 警告并包含新的“a 和/或 b is 5”警告是否适合您的用例?例如
functionA <- function(a){
if(a==5){
message("The value is 5.")
}
return(a-2)
}
functionB <- function(b){
if(b==5){
message("The value is 5.")
}
return(b+7)
}
functionC <- function(a,b){
a <- functionA(a)
b <- functionB(b)
c <- rbind(a,b)
return(c)
}
functionC(5,5)
#> The value is 5.
#> The value is 5.
#> [,1]
#> a 3
#> b 12
functionD <- function(a,b){
if(a==5 | b==5){
message("The value of a and/or b is 5.")
}
a <- suppressMessages(functionA(a))
b <- suppressMessages(functionB(b))
c <- rbind(a,b)
return(c)
}
functionD(5,5)
#> The value of a and/or b is 5.
#> [,1]
#> a 3
#> b 12
创建于 2023-08-18,使用 reprex v2.0.2