Cara menangkap bilangan bulat (0) di r (dengan contoh)
Terkadang saat Anda menggunakan fungsiwhich () di R, Anda mungkin mendapatkan integer(0) , yang menunjukkan bahwa tidak ada elemen dalam vektor yang bernilai TRUE.
Misalnya, kita menggunakan kode berikut untuk memeriksa elemen vektor mana yang sama dengan nilai 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)
Karena tidak ada satu pun elemen dalam vektor yang sama dengan 10, hasilnya adalah bilangan bulat dengan panjang 0, ditulis sebagai bilangan bulat(0) di R.
Penting untuk dicatat bahwa bilangan bulat (0) bukanlah kesalahan, tapi terkadang Anda mungkin hanya ingin tahu kapan itu terjadi.
Contoh berikut menunjukkan cara menangkap bilangan bulat (0) di R.
Contoh 1: Tangkap bilangan bulat (0) di R menggunakan fungsi identik()
Cara termudah untuk menangkap bilangan bulat (0) di R adalah dengan menggunakan fungsi identik() seperti ini:
#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
Karena hasil kita sama dengan integer(0) , R mengembalikan TRUE .
Ini memberi tahu kita bahwa hasil dari fungsi yang() adalah bilangan bulat dengan panjang 0.
Contoh 2: Menangkap bilangan bulat (0) di R menggunakan fungsi if else
Cara lain untuk menangkap bilangan bulat (0) adalah dengan mendefinisikan fungsi if else yang mengembalikan sesuatu yang spesifik jika bilangan bulat (0) muncul.
Misalnya, kita dapat mendefinisikan fungsi berikut untuk mengembalikan frasa “Ini bilangan bulat (0)” jika bilangan bulat (0) muncul:
#define function to catch integer(0) integer0_test <- function (data) { if (identical(data, integer(0))) { return (' It is an integer(0) ') } else { return (data) } }
Kami kemudian dapat menggunakan fungsi ini:
#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)"
Karena x memang integer(0) , fungsi kita mengembalikan kalimat yang kita tentukan.
Dan jika x bukan integer(0) , fungsi kita hanya akan mengembalikan hasil dari fungsiwhich() :
#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
Fungsi kita mengembalikan 3 dan 4 karena ini adalah posisi elemen vektor yang sama dengan nilai 4.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara menulis fungsi tryCatch() pertama Anda di R
Cara membuat loop For bersarang di R
Cara mengembalikan nilai suatu fungsi di R