43

特定の条件 (日付と通貨) を満たすディレクトリ内のすべてのファイルを一覧表示したい。したがって、条件が 1 つだけの場合、引数patternlist.filesうまく機能します。

    file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern='20130801')

私が試した複数の条件について:

    file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern=c('20130801','USD'))

しかし、最初のものと同じ結果が得られました。patternの引数に複数の基準を持つ方法はありlist.filesますか?

4

6 に答える 6

37
file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern="20130801|USD")
于 2013-08-03T01:10:08.833 に答える
35

In line with Baptiste and the answer on this post (list.files pattern argument in R, extended regular expression use), you can use the following expression:

file.ls <- list.files(path='~/DATA/PiP/Curvas/',
pattern=glob2rx("*20130801*USD*"))

Where * is the wildcard.

于 2016-08-09T12:01:33.803 に答える
7
 Filter(function(x) grepl("USD", x), file.ls)

または、両方の文字列を含むファイル名のみに一致する pattern の正規表現を作成することもできますが、それは魔法使いのゲームです。

于 2013-08-03T01:14:08.443 に答える
1

条件を探していると解釈しますAND。次に、次を使用します。

file.ls <- grep(pattern = "(?=.*20130801)(?=.*USD)", x = list.files(path = '~/DATA/PiP/Curvas/'), value = TRUE, perl = TRUE)

このコマンドを使用.texして、記号でタグ付けしたファイルを返します+(一種の基本的なタグ付けシステム)。たとえば、 、 、 、 とタグ付けされたファイルを見つけるには+neuralnetよう に使用します。+style +set

grep("(?=.*\\+style)(?=.*\\+neuralnet)(?=.*\\+set)", list.files("./src", pattern = "*.tex$", full.names = TRUE), value = TRUE, perl = TRUE)

where(?=)は肯定的な先読みであり、ファイルのタグ付けに使用する記号である記号\\+をエスケープするために使用されます。AND 条件は必要な+数だけ追加できます。(?=...)

私の.texファイルは LatexTikZファイルです。これは部分的なリストです:

 [1] "./src/block_diagram-multilayer_perceptron+neuralnet+style+learn.tex"           
 [2] "./src/block_diagram-perceptron+neuralnet+set+learn.tex"                        
 [3] "./src/discriminator+neuralnet+matrix+foreach+style.tex"                        
 [4] "./src/foreach-neural_network-1h+neuralnet.tex"                                 
 [5] "./src/generative_adversarial_network_manual_net+neuralnet.tex"                 
 [6] "./src/generator+neuralnet+matrix.tex"                                          
 [7] "./src/hopfield_auto_net+neuralnet+foreach+scope+learn+style+command.tex"       
 [8] "./src/ml_1h_manual_net+neuralnet+style+matrix+foreach.tex"                     
 [9] "./src/ml_2h_manual_net-color+neuralnet+set+foreach.tex"                        
[10] "./src/ml_a3c_manual_net_arr+neuralnet.tex"                                     
[11] "./src/ml_auto_net_arr+neuralnet+foreach+style+foreach.tex"                     
[12] "./src/ml-auto_net_4h_arr+neuralnet+matrix+foreach+style+scope.tex"             
[13] "./src/ml-auto_net_bias_arr+neuralnet+learn+foreach+def+command+ifnum+style.tex"
[14] "./src/ml-auto_net_color+neuralnet+foreach.tex"                                 
[15] "./src/ml-auto_net_icon+neuralnet+style+foreach+set+function+learn.tex"         
[16] "./src/ml-SVM_manual+neuralnet.tex"                                             
[17] "./src/nn-01-2_summarized+neuralnet+style+learn.tex"                            
[18] "./src/nn-02_auto_net+neuralnet+foreach+pgf+style+learn.tex"                    
[19] "./src/nn-03_auto_net+neuralnet+foreach+style+learn.tex"                        
[20] "./src/nn-04_auto_net+neuralnet+matrix+style+foreach.tex"                       
[21] "./src/nn-05_auto_net_arr+neuralnet+style+foreach+learn.tex"                    
[22] "./src/nn-06_manual_net_color+neuralnet+foreach+style.tex"                      
[23] "./src/nn-08-tkz-berge-01+neuralnet+scope+foreach+pkg.tex"                      
[24] "./src/nn-09_manual_net+neuralnet+foreach+scope.tex"                            
[25] "./src/stacked_blocks+neuralnet+3d+def+pgf+set+style.tex" 

次に、grep、 with list.files、および正規表現の正の先読みを使用することで、作業したい目的やアクティビティごとにファイルを(?=...)効果的に選択する方法が得られます。TikZこの文字+は、R および Linux でのタグ付けに問題なく機能します。Linux では、スイッチfindと一緒に使用します。-and-regex

于 2020-05-25T15:33:35.310 に答える