Как подавить предупреждения в 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 обнаружено недопустимое значение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *