📌  相关文章
📜  如何在 R 中修复:条件的长度 > 1,并且只使用第一个元素

📅  最后修改于: 2022-05-13 01:54:39.512000             🧑  作者: Mango

如何在 R 中修复:条件的长度 > 1,并且只使用第一个元素

在本文中,我们将讨论如何在 R 编程语言中将错误修复为“条件长度 > 1 并且仅使用第一个元素”。

当我们尝试使用 if 语句评估一个值但错误地将向量传递给 if 语句时,就会出现这种类型的错误。在 R 中可能面临的一个错误是:

何时可能发生此错误:

R
# Initialize a vector
vect <- c(2, 4, -7, 9, -12)


R
# Initialize a vector
vect <- c(2, 4, -7, 9, -12)
  
# If value in vector vect is greater 
# than one then increment it by one
if (vect > 1) {
  vect = vect + 1
}


R
# Initialize a vector
vect <- c(2, 4, -7, 9, -12)
  
# If value in vector vect is greater 
# than one then increment it by one
ifelse(vect > 1, vect + 1, vect)


现在假设我们要检查向量中的每个值是否大于 1,如果是,那么我们只需将其增加 1。

例子:

在这个例子中,R 编译器产生了这样一个错误,因为我们向 if() 语句传递了一个向量。 if() 语句可以一次处理向量中的单个元素,但这里我们试图一次检查所有值。

R

# Initialize a vector
vect <- c(2, 4, -7, 9, -12)
  
# If value in vector vect is greater 
# than one then increment it by one
if (vect > 1) {
  vect = vect + 1
}

输出:

输出

如何修复此错误:

我们可以通过使用 ifelse()函数来修复这个错误。 ifelse()函数允许我们一次处理每个值。因此,与 if 语句相比,它是一个不错的选择。

例子:

在这个例子中,工作如下:

  • 第一个位置的元素是大于 1 的 2,因此我们将其增加 1 得到 3。
  • 第二个位置的元素是大于 1 的 4,因此我们将它增加 1 得到 5。
  • 第三个位置的元素是-7,不大于1,因此值保持不变。
  • 第四个位置的元素是大于 1 的 9,因此我们将其增加 1 得到 10。
  • 第五个位置的元素是-12,不大于1,因此值保持不变。

R

# Initialize a vector
vect <- c(2, 4, -7, 9, -12)
  
# If value in vector vect is greater 
# than one then increment it by one
ifelse(vect > 1, vect + 1, vect)

输出:

输出