20

次のように動作する R の関数はありますか。

isnothing = function(x) {
    is.null(x) | is.na(x) | is.nan(x)
}
4

3 に答える 3

16

私もそのような機能を欠いていて、これを私の.Rprofile年齢に追加しました。誰かが同じことをする基本関数を知っているなら、私も知りたいです。

is.blank <- function(x, false.triggers=FALSE){
    if(is.function(x)) return(FALSE) # Some of the tests below trigger
                                     # warnings when used on functions
    return(
        is.null(x) ||                # Actually this line is unnecessary since
        length(x) == 0 ||            # length(NULL) = 0, but I like to be clear
        all(is.na(x)) ||
        all(x=="") ||
        (false.triggers && all(!x))
    )
}

@shadow が述べたようにNANaNNULLには、理解することが重要なさまざまな意味があります。ただし、この関数は、デフォルト値を持つオプションの引数を含む関数を作成し、ユーザーがそれらを「未定義」の値に設定して抑制できるようにする場合に便利です。

そのような例の 1 つxlabですplotxlab=NAxlab=FALSExlab=NULLまたはxlab="". _ 望ましい結果が得られるものもあれば、そうでないものもあるため、コードを開発するとき、特に他の人もそれを使用する場合は、上記の関数ですべてをキャッチすると便利であることがわかりました。

于 2013-10-29T10:41:57.730 に答える
6

gtools基本的に、 invalid() 関数が何をするかを探していると思います。

 ?gtools::invalid

例えば、

gtools::invalid(NA)
[1] TRUE
gtools::invalid(NULL)
[1] TRUE
gtools::invalid(NaN)
[1] TRUE
于 2016-04-08T13:28:27.590 に答える