如何在 r 中抑制警告(附示例)


您可以使用以下方法来抑制 R 中的警告:

方法一:删除特定行的警告

 suppressWarnings(one line of code)

方法2:全局删除警告

 suppressWarnings({

several lines of code
just a bunch of code
lots and lots of code

})

以下示例通过以下代码展示了如何在实践中使用每种方法,该代码会生成两条警告消息:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector
x_numeric <- as. numeric (x)

#display digital vector
print (x_numeric)

Warning message:
NAs introduced by coercion 
[1] 1 2 3 NA 4 NA

#define two vectors
a <- c(1, 2, 3, 4, 5)
b <- c(6, 7, 8, 9)

#add the two vectors
a+b

[1] 7 9 11 13 11
Warning message:
In a + b: longer object length is not a multiple of shorter object length

方法一:删除特定行的警告

我们可以将suppressWarnings()函数包装在as.numeric()函数周围,以仅抑制代码中的第一个警告:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector
suppressWarnings(x_numeric <- as.numeric (x))

#display digital vector
print (x_numeric)

[1] 1 2 3 NA 4 NA

#define two vectors
a <- c(1, 2, 3, 4, 5)
b <- c(6, 7, 8, 9)

#add the two vectors
a+b

[1] 7 9 11 13 11
Warning message:
In a + b: longer object length is not a multiple of shorter object length

请注意,第一条警告消息不再出现,但第二条警告消息仍然出现。

方法2:全局删除警告

我们可以将suppressWarnings({})函数包装在整段代码周围,以全局抑制所有警告:

 suppressWarnings({

#define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector
suppressWarnings(x_numeric <- as.numeric (x))

#display digital vector
print (x_numeric)

[1] 1 2 3 NA 4 NA

#define two vectors
a <- c(1, 2, 3, 4, 5)
b <- c(6, 7, 8, 9)

#add the two vectors
a+b

[1] 7 9 11 13 11

})

请注意,这次我们没有收到任何警告,因为我们已将suppressWarnings({})函数包装在整段代码中。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何避免警告 R:reached getOption(“max.print”)
如何处理 R 警告:glm.fit:算法未收敛
如何修复:运行时警告:double_scalars 中遇到无效值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注