2017-04-14 5 views
0

Rのlist.files()で空のディレクトリをチェックし、出力が...list.files()の出力をintに変換するには?

> list.files('/home/someDir') 
character(0) 

文字列である。しかし、私はその長さをテストし、のような制御構造でそれを使用したい

> current <- '/home/someDir' 
> dirPick <- function(){ 
    tryCatch(
     if (length(list.files(current) > 0)) { 
     dirData <- current 
     } else { 
     dirData <- old 
     } 
    ) 
    } 

しかし、

> list.files('/home/someDir') == 0 
logical(0) 


> as.numeric(list.files('/home/someDir')) == 0 
logical(0) 

を私が異なって理解していないことを確認:私が期待するようlist.files()によって返されるオブジェクトは作用しません論理値と論理値の間には存在しますが、なぜこれは整数のゼロのように機能しませんか?

答えて

2

試してみてください。

length(list.files('/home/someDir')) == 0 

character(0)は空の変数のようないくつかを示します。それで、あなたはlength()属性

+0

なしでそれを合計したり、0に変換したりすることができません。それは読みにくいかもしれませんが、 '!length(...) 'です。 – Frank

関連する問題