はR

2012-04-05 9 views
3

に供給され、I持ちRで、次の(無意味な)機能、:はR

文字列オブジェクトが実際に存在チェックですべての非常によくある
say <- function (string){ 
    if(!exists("string")){ 
    stop("no output string was specified") 
    } 
    cat(string) 
} 

。しかし、同じ名前のオブジェクトが既にワークスペース内に浮いている場合、関数内で定義されていないにもかかわらずエラーは無視されます。

exist()関数はオブジェクトの関数空間内を探すようにすることはできますか?

答えて

5

あなたが探しているのはmissingです。他の人は、この代わりのようなものを実行します。

say <- function(string=NULL){ 
    if(is.null(string)){ 
    stop("no output string was specified") 
    } 
    cat(string) 
} 
+0

すなわち 'ストップ()((文字列)を欠落している)場合には' 'の利点は、' missing'対is.null'ているもの – jbaums

+0

? –

+0

@ Xu:値がNULLである変数を存在させることは可能です。そのため、基本的には変数で何をしたいのかによって異なります。 –