Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果不等于或不等于R?_R - Fatal编程技术网

如果不等于或不等于R?

如果不等于或不等于R?,r,R,基本问题。。。我知道有很多类似的问题与我类似,但似乎没有一个能直接回答我的问题 基本上,我想在R中创建一条警告消息,如果不满足任何条件。。。但我不确定我做错了什么!?下面是一个非常简单的例子: FUNC <- function(x){ if(x != "barChart" || x != "scatterPlot"){ stop("x must be barChart or scatterPlot") }else{pr

基本问题。。。我知道有很多类似的问题与我类似,但似乎没有一个能直接回答我的问题

基本上,我想在R中创建一条警告消息,如果不满足任何条件。。。但我不确定我做错了什么!?下面是一个非常简单的例子:

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必须是条形图或散点图