Как подавить предупреждения в r (с примерами)
Вы можете использовать следующие методы для подавления предупреждений в R:
Способ 1: удалить предупреждения в определенной строке
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
Способ 1: удалить предупреждения в определенной строке
Мы можем обернуть функцию подавленияWarnings() вокруг функции 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: удалить предупреждения глобально
Мы можем обернуть функцию подавленияWarnings({}) вокруг всего фрагмента кода, чтобы глобально подавить все предупреждения:
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 })
Обратите внимание, что на этот раз мы не получим никаких предупреждений, поскольку мы обернули функцию подавленияWarnings({}) вокруг всего фрагмента кода.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как избежать предупреждения R: достигнут getOption(«max.print»)
Как обрабатывать предупреждение R: glm.fit: алгоритм не сходится
Как исправить: предупреждение во время выполнения: в double_scalar обнаружено недопустимое значение.