R'de ilk trycatch() fonksiyonunuzu nasıl yazarsınız?
Bir ifadenin değerini döndürmek veya bir uyarı veya hatayla karşılaşıldığında özel bir mesaj oluşturmak için R’deki tryCatch() işlevini kullanabilirsiniz.
Bu işlev aşağıdaki temel sözdizimini kullanır:
my_function <- function (x, y){ tryCatch ( #try to do this { #some expression }, #if an error occurs, tell me the error error= function (e) { message(' An Error Occurred ') print(e) }, #if a warning occurs, tell me the warning warning= function (w) { message(' A Warning Occurred ') print(w) return (NA) } ) }
Aşağıdaki örnekler tryCatch() fonksiyonunun pratikte nasıl kullanılacağını göstermektedir.
Örnek: R’de tryCatch() işlevi oluşturma
Diyelim ki bir değerin günlüğünü almaya ve ardından onu ikinci bir değere bölmeye çalışan aşağıdaki tryCatch() işlevini oluşturduğumuzu varsayalım.
Bir hata oluşursa, “Bir hata oluştu” mesajını çıktı olarak vereceğiz ve ardından hatayı R’ye yazdıracağız.
Bir uyarı oluşursa, “Bir uyarı oluştu” mesajını çıktı olarak vereceğiz, uyarıyı R’ye yazdıracağız ve ardından bir NA değeri döndüreceğiz.
Herhangi bir hata veya uyarı oluşmazsa, yalnızca işlev sonucunu döndürürüz.
log_and_divide <- function (x, y){
tryCatch (
{
result = log(x) / y
return (result)
},
error= function (e) {
message(' An Error Occurred ')
print(e)
},
warning= function (w) {
message(' A Warning Occurred ')
print(w)
return (NA)
}
)
}
Bu fonksiyonu farklı senaryolarda çalıştıralım.
Senaryo 1: Hiçbir hata veya uyarı oluşmuyor.
Aşağıdaki kod, hiçbir hatanın veya uyarının oluşmadığı bir senaryoda işlevin nasıl kullanılacağını gösterir.
#run function
log_and_divide(10, 2)
[1] 1.151293
Herhangi bir hata veya uyarı oluşmadığından, işlev yalnızca ifadenin sonucunu döndürür ve bu sonuç 1.151293 olur.
Senaryo 2: Bir hata oluşuyor.
Aşağıdaki kod, bir hatanın oluştuğu bir senaryoda işlevin nasıl kullanılacağını gösterir:
#run function
log_and_divide(10)
An Error Occurred
<simpleError in doTryCatch(return(expr), name, parentenv, handler):
argument "y" is missing, with no default>
Fonksiyona yalnızca bir argüman sağladığımız için ” Bir hata oluştu ” mesajını alıyoruz ve aynı zamanda R’nin ürettiği hatanın aynısını da görüyoruz.
Senaryo 3: Bir uyarı oluşur.
Aşağıdaki kod, bir uyarının oluştuğu bir senaryoda işlevin nasıl kullanılacağını gösterir:
#run function
log_and_divide(-10, 2)
A Warning Occurred
<simpleWarning in log(x): NaNs produced>
[1] NA
İlk argüman için negatif bir değer verdiğimiz için R, negatif bir değerin logunu hesaplayamıyor, bu nedenle ” Bir uyarı oluştu ” mesajını alıyoruz, R tarafından üretilen uyarının aynısını görüyoruz ve fonksiyon NA olarak geri dönüyor. negatif değere sahiptir. sonuç.
Ek kaynaklar
Aşağıdaki eğitimlerde R’de diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
R’de iç içe bir For döngüsü nasıl oluşturulur
R’de bir döngü kullanarak bir vektöre değerler nasıl eklenir
R’de bir fonksiyonun değeri nasıl döndürülür