2012-04-03 7 views
0

私はタイスのファイル名に応じて異なるカテゴリ内のファイルをロードしてみてください。今まで私は常に使用しました式の途中にワイルドカードがありますか?

list<-dir(pattern=".gle$") 

すべてのgleファイルを取得する。今、私は& PCA別々に、集団はBGカンポをロードしたいと私は、例えばあるファイル名の中間で使用できるワイルドカード、探しています

0KK_bg_SunAdj.gle 
0LC_campo_SunAdj.gle 
0KR_pca_SunAdj_corr.gle 

私は

list<-dir(pattern=glob2rx("*something*bg*something*.gle$")) 

のようなものを考えたが、私は?glob2rxヘルプファイルのすべての例を試してみましたが、成功しませんでした。 私はそれが可能であると確信している(私は意味、それはRです...)...

おかげで、私はそれを把握することはできません!

+0

おそらく、 'glob2rx'の引数の最後に' $ 'は必要ありません。 – kohske

+0

@kohske:ok!しかし、私は中間(bgと.gleの間)で何を使用しますか? –

+0

'パターン=「BG」'、 'パターン=カンポ" 'と'パターン= 『PCA』 'それをカットしないでくださいRomanLuš[email protected] –

答えて

2

はいかが

list1<-dir(pattern="[[:print:]]*_bg_[[:print:]]*.gle") 
list2<-dir(pattern="[[:print:]]*_campo_[[:print:]]*.gle") 
list3<-dir(pattern="[[:print:]]*_pca_[[:print:]]*.gle") 

しかし、これらは、ディレクトリ内の他のファイルを拾うことがあります。もしそうでなければ、@RomanLuštrikはおそらく上記のコメントの頭に釘を打つでしょう。 EDIT:実際、@RomanLuštrikのコメントは、non.gleファイルを拾います。したがって、上記のコードはより適切です。

1

私はあなたの頭と尾をトリミングするためglob2rx機能の他のオプションが必要だと思います。例えば、

R> f = c("0KK_bg_SunAdj.gle", "0LC_campo_SunAdj.gle", "0KR_pca_SunAdj_corr.gle") 
R> m = glob2rx("*campo*.gle", FALSE, FALSE) 
R> grepl(m, f) 
[1] FALSE TRUE FALSE 
関連する問題