Як зловити ціле число (0) в r (з прикладами)
Іноді, коли ви використовуєте функцію which() у R, ви можете отримати ціле число (0) , яке вказує, що жоден з елементів у векторі не має значення TRUE.
Наприклад, припустімо, що ми використовуємо такий код, щоб перевірити, які елементи вектора дорівнюють значенню 10:
#define vector of values data <- c(1, 2, 4, 4, 5, 7, 8, 9) #find elements in vector equal to 10 x <- which(data == 10 ) #view results x integer(0)
Оскільки жоден з елементів у векторі не дорівнює 10, результатом є ціле число довжини 0, записане як integer(0) у R.
Важливо зазначити, що ціле число (0) не є помилкою, але іноді ви можете просто захотіти знати, коли це станеться.
У наступних прикладах показано, як захопити ціле число (0) у R.
Приклад 1. Зловіть ціле число (0) у R за допомогою функції identical().
Найпростіший спосіб зловити ціле число (0) у R — це використати функцію identical() ось так:
#define vector of values data <- c(1, 2, 4, 4, 5, 7, 8, 9) #find elements in vector equal to 10 x <- which(data == 10 ) #test if x is identical to integer(0) identical(x, integer(0)) [1] TRUE
Оскільки наш результат дорівнює integer(0) , R повертає TRUE .
Це дає нам знати, що результатом функції which() є ціле число довжини 0.
Приклад 2: Перехоплення цілого числа (0) у R за допомогою функції if else
Інший спосіб перехопити ціле число (0) — це визначити функцію if else, яка повертає щось конкретне, якщо зустрічається ціле число (0) .
Наприклад, ми могли б визначити таку функцію, яка повертає фразу «Це ціле число (0)», якщо з’являється ціле число (0) :
#define function to catch integer(0) integer0_test <- function (data) { if (identical(data, integer(0))) { return (' It is an integer(0) ') } else { return (data) } }
Потім ми можемо використовувати цю функцію:
#define vector of values data <- c(1, 2, 4, 4, 5, 7, 8, 9) #find elements in vector equal to 10 x <- which(data == 10 ) #use function to test if x is integer(0) integer0_test(x) [1] "It is an integer(0)"
Оскільки x справді є цілим числом (0) , наша функція повертає вказане нами речення.
І якщо x не є цілим числом (0) , наша функція просто поверне результат функції which():
#define vector of values data <- c(1, 2, 4, 4, 5, 7, 8, 9) #find elements in vector equal to 4 x <- which(data == 4 ) #use function to test if x is integer(0) integer0_test(x) [1] 3 4
Наша функція повертає 3 і 4 , оскільки це позиції елементів вектора, які дорівнюють значенню 4.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як написати вашу першу функцію tryCatch() у R
Як створити вкладений цикл For у R
Як повернути значення функції в R