Одно распространенное предупреждающее сообщение, с которым вы можете столкнуться в R:
Warning message:
NAs introduced by coercion
Это предупреждающее сообщение появляется, когда вы используете as.numeric() для преобразования вектора в R в числовой вектор, а в исходном векторе есть нечисловые значения.
Чтобы было ясно, вам не нужно ничего делать, чтобы «исправить» это предупреждающее сообщение. R просто предупреждает вас о том, что некоторые значения в исходном векторе были преобразованы в NA, потому что их нельзя преобразовать в числовые значения.
Однако в этом руководстве описаны точные шаги, которые вы можете использовать, если вы вообще не хотите, чтобы это предупреждающее сообщение отображалось.
Как воспроизвести предупреждающее сообщение
Следующий код преобразует вектор символов в числовой вектор:
#define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')
#convert to numeric vector
x_num <- as. numeric (x)
#display numeric vector
x_num
Warning message:
NAs introduced by coercion
[1] 1 2 3 NA 4 NA
R преобразует вектор символов в числовой вектор, но отображает предупреждающее сообщение NAs, введенное принуждением, поскольку два значения в исходном векторе не могут быть преобразованы в числовые значения.
Метод № 1: подавить предупреждения
Один из способов справиться с этим предупреждающим сообщением состоит в том, чтобы просто подавить его с помощью функции submitWarnings() при преобразовании вектора символов в числовой вектор:
#define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')
#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as. numeric (x))
#display numeric vector
x_num
[1] 1 2 3 NA 4 NA
R успешно преобразует вектор символов в числовой вектор без отображения каких-либо предупреждающих сообщений.
Способ № 2: заменить нечисловые значения
Один из способов избежать предупреждающего сообщения — заменить нечисловые значения в исходном векторе пробелами с помощью функции gsub() :
#define character vector
x <- c('1', '2', '3', '4', 'Hey')
#replace non-numeric values with 0
x <- gsub(" Hey", " 0", x)
#convert to numeric vector
x_num <- as. numeric (x)
#display numeric vector
x_num
[1] 1 2 3 4 0
R успешно преобразует вектор символов в числовой вектор без отображения каких-либо предупреждающих сообщений.
Дополнительные ресурсы
В следующих руководствах объясняется, как устранять другие распространенные ошибки в R:
Как исправить в R: имена не совпадают с предыдущими именами
Как исправить в R: более длинная длина объекта не кратна более короткой длине объекта
Как исправить в R: контрасты могут применяться только к факторам с 2 или более уровнями