如果不等于或不等于R?
基本问题。。。我知道有很多类似的问题与我类似,但似乎没有一个能直接回答我的问题 基本上,我想在R中创建一条警告消息,如果不满足任何条件。。。但我不确定我做错了什么!?下面是一个非常简单的例子:如果不等于或不等于R?,r,R,基本问题。。。我知道有很多类似的问题与我类似,但似乎没有一个能直接回答我的问题 基本上,我想在R中创建一条警告消息,如果不满足任何条件。。。但我不确定我做错了什么!?下面是一个非常简单的例子: FUNC <- function(x){ if(x != "barChart" || x != "scatterPlot"){ stop("x must be barChart or scatterPlot") }else{pr
FUNC <- function(x){
if(x != "barChart" || x != "scatterPlot"){
stop("x must be barChart or scatterPlot")
}else{print("Hello")}
}
FUNC("barChart")
这将导致Hello,但它将返回警告消息。我猜我的if或语句结构不正确。。。有没有关于如何正确书写的建议
如果x是散点图,那么它不是条形图,所以x!=柱状图是正确的。
如果x是条形图,那么它不是散点图,所以x!=散点图是真的
如果x既不是条形图也不是散点图,则这两种情况都为真
| |表示如果任一语句为TRUE,则返回TRUE
这意味着x永远是真的
因此,解决办法是
if(x != "barChart" & x != "scatterPlot")
如果x是散点图,那么它不是条形图,所以x!=柱状图是正确的。
如果x是条形图,那么它不是散点图,所以x!=散点图是真的
如果x既不是条形图也不是散点图,则这两种情况都为真
| |表示如果任一语句为TRUE,则返回TRUE
这意味着x永远是真的
因此,解决办法是
if(x != "barChart" & x != "scatterPlot")
我建议你用stopifnot来做这样的断言
FUNC <- function(x){
stopifnot("x must be barChart or scatterPlot" = x %in% c("barChart", "scatterPlot"))
print("Hello")
}
FUNC("barChart")
#[1] "Hello"
FUNC("scatterPlot")
#[1] "Hello"
FUNC("test")
# Error in FUNC("test") : x must be barChart or scatterPlot
我建议你用stopifnot来做这样的断言
FUNC <- function(x){
stopifnot("x must be barChart or scatterPlot" = x %in% c("barChart", "scatterPlot"))
print("Hello")
}
FUNC("barChart")
#[1] "Hello"
FUNC("scatterPlot")
#[1] "Hello"
FUNC("test")
# Error in FUNC("test") : x must be barChart or scatterPlot
是双重原因还是问题||用单曲或| |试过了。。。我仍然得到同样不正确的结果,是&&而不是| |。你的逻辑是错误的。如果x如果!x%在%cbarChart中,散点图stopx必须是条形图或散点图是双精度还是问题?-||用单曲或| |试过了。。。我仍然得到同样不正确的结果,是&&而不是| |。你的逻辑是错误的。如果x如果!x%在%cbarChart中,散点图stopx必须是条形图或散点图