R'de bir tamsayı (0) nasıl yakalanır (örneklerle)


Bazen R’de that() işlevini kullandığınızda, bir vektördeki hiçbir öğenin TRUE olarak değerlendirilmediğini gösteren bir integer(0) elde edebilirsiniz.

Örneğin, bir vektörün hangi elemanlarının 10 değerine eşit olduğunu kontrol etmek için aşağıdaki kodu kullandığımızı varsayalım:

 #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)

Vektördeki elemanların hiçbiri 10’a eşit olmadığından sonuç, R’de tamsayı(0) olarak yazılan, uzunluğu 0 olan bir tamsayıdır.

Tamsayı (0)’ ın bir hata olmadığını unutmamak önemlidir, ancak bazen bunun ne zaman olacağını bilmek isteyebilirsiniz.

Aşağıdaki örnekler R’de bir tam sayının (0) nasıl yakalanacağını gösterir.

Örnek 1: Aynı() işlevini kullanarak R’de bir tamsayı (0) yakalayın

R’de bir tam sayıyı (0) yakalamanın en kolay yolu, özdeş() işlevini şu şekilde kullanmaktır:

 #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

Sonucumuz tamsayı(0)’a eşit olduğundan R, TRUE değerini döndürür.

Bu bize, that() fonksiyonunun sonucunun 0 uzunluğunda bir tamsayı olduğunu bilmemizi sağlar.

Örnek 2: if else işlevini kullanarak R’de bir tamsayıyı (0) yakalamak

Bir tamsayıyı (0) yakalamanın başka bir yolu, bir tamsayı (0) oluştuğunda belirli bir şeyi döndüren bir if else işlevi tanımlamaktır.

Örneğin, bir tamsayı (0) göründüğünde “Bu bir tamsayı (0) ” ifadesini döndürmek için aşağıdaki işlevi tanımlayabiliriz:

 #define function to catch integer(0)
integer0_test <- function (data) {
 
  if (identical(data, integer(0))) {
    return (' It is an integer(0) ')
  }

  else {
    return (data)
  }

}

Daha sonra bu işlevi kullanabiliriz:

 #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 aslında bir tamsayı(0) olduğundan, fonksiyonumuz belirttiğimiz cümleyi döndürür.

Ve eğer x bir tamsayı(0) değilse, fonksiyonumuz basitçe that() fonksiyonunun sonucunu döndürecektir:

 #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

Fonksiyonumuz 3 ve 4 değerini döndürür çünkü bunlar vektör elemanlarının 4 değerine eşit konumlarıdır.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de ilk tryCatch() fonksiyonunuzu nasıl yazarsınız?
R’de iç içe bir For döngüsü nasıl oluşturulur
R’de bir fonksiyonun değeri nasıl döndürülür

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir