特定の例外に対してメッセージをスローして返す関数が必要です。次に、返されるものが定義済みの「例外」の1つであるかどうかを確認するだけです。たとえば、次の関数があるとします。
divideByX <- function(x){
# If x is NA throws exception
if(is.na(x)){
return(exception('x is NA'))
}
# If x is 0 throws exception
else if(x == 0){
return(exception('Cannot divide by zero'))
}
else{
return(10/x)
}
}
したがって、xが0の場合は、「ゼロで除算できません」という期待値を返し、xがNAの場合は、「xはNA」という例外を返し、xの他のすべての値については、式10/xを評価しようとします。
次に、次のようなものを実行したいと思います。
tempList <- list('a' = 2, 'b' = 0, 'c' = 5, 'd' = NA)
lapply(tempList, function(x){
if(is.exception(x)){
return(x)
}
else{
y <- divideByX(x)
return(y^2)
}
})
したがって、最初に値が私の定義された例外の1つであるかどうかをチェックし、そうである場合はメッセージを返します。そうでない場合は、値を2乗するので、上記は
$a
[1] 25
$b
[1] 'Cannot divide by zero'
$c
[1] 4
$d
[1] 'x is NA'
誰かがこれを行うための最良の方法を知っていますか?不明な点がありましたらお知らせください。
前もって感謝します