2017-03-22 10 views
4

list.filesdirの両方を使用してみました。両方のコマンドが同じ出力を返しました。これらの2つのコマンドの主な違いは何ですか?その使用状況は何ですか?list.filesとdirの違いは何ですか?

答えて

5

これらの引数は同じ引数を取りますが、これらの引数は同じデフォルト値を持ち、実行する関数は同じ.Internalです。

としてはコメントで@RichScrivenが指摘し、それらが同じであることを、コンパクトかつ正確なテストがidenticalを使用して実行することができます:

identical(list.files, dir) 
[1] TRUE 

我々はまた、彼らのソースコードを見てみることができます。

dir 
function (path = ".", pattern = NULL, all.files = FALSE, full.names = FALSE, 
    recursive = FALSE, ignore.case = FALSE, include.dirs = FALSE, 
    no.. = FALSE) 
.Internal(list.files(path, pattern, all.files, full.names, recursive, 
    ignore.case, include.dirs, no..)) 
<bytecode: 0x000000000fe1c388> 
<environment: namespace:base> 

list.files 
function (path = ".", pattern = NULL, all.files = FALSE, full.names = FALSE, 
    recursive = FALSE, ignore.case = FALSE, include.dirs = FALSE, 
    no.. = FALSE) 
.Internal(list.files(path, pattern, all.files, full.names, recursive, 
    ignore.case, include.dirs, no..)) 
<bytecode: 0x0000000008811280> 
<environment: namespace:base> 

.Internal(list.files(path, pattern, all.files, full.names, recursive, 
     ignore.case, include.dirs, no..)) 

それは両方の機能を実行します。

+0

私は彼らが '?dir'でこれについて何か言いたいと思っています。 10分後に "相違点を見つけて"、最後に自分たちが同一であることを確信して、余分に確かめるようにグーグルで尋ねる。 – MichaelChirico

+0

@MichaelChirico - あなたはちょうど同じ(dir、list.files)をしている可能性がある。 ;)この答えでも結果に注目する価値があるかもしれません。 –

+0

@RichScriven良い点ですが、私はその機能を試そうとする本能がありません!私はそれがSプラスの痕跡だと思いますか?なぜ彼らが両方の機能が存在するのかについていくつかの文脈を与えてくれたらと思います... – MichaelChirico

関連する問題