如何在 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 中遇到无效值