Як виправити в r: nas, введені примусово


Типове попередження, яке ви можете зустріти в 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 digital vector
x_num

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

R перетворює символьний вектор на числовий вектор, але відображає попереджувальне повідомлення NAs, введене примусово, оскільки два значення вихідного вектора не вдалося перетворити на числові значення.

Спосіб №1: видаліть попередження

Один із способів обробки цього попереджувального повідомлення — просто придушити його за допомогою функції suppressWarnings() під час перетворення символьного вектора на числовий вектор:

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

#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))

#display digital 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 digital vector
x_num

[1] 1 2 3 4 0

R успішно перетворює символьний вектор у числовий вектор без відображення жодного попереджувального повідомлення.

Додаткові ресурси

У наступних посібниках пояснюється, як вирішити інші поширені помилки в R:

Як виправити в R: імена не збігаються з попередніми іменами
Як виправити в R: довжина довшого об’єкта не є кратною довжині коротшого об’єкта
Як виправити в R: контрасти можна застосовувати лише до факторів із 2 або більше рівнями

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *