0

R の Sys.glob() 関数に中かっこを展開させることは可能ですか? つまり、 /home/foo/{a,b}/bar.txt のようなパターンは、ファイル /home/foo/a/bar.txt と /home/foo/b/bar.txt の両方が存在する場合にそれらを見つける必要があるということです。 . デフォルトでは、R はブレースを展開しません。

glob(3) では、GLOB_BRACE フラグを使用してブレース展開が可能です。R はカバーの下で glob(3) を呼び出しているだけだと推測しているので、何らかの方法があることを願っていますが、正しい呼び出しが見つからないようです...

4

3 に答える 3

1

systemRで直接公開されていない場合は、(インターンパラメーターをTRUEに設定して)使用して、使用したいシステムコマンドを呼び出すこともできますSys.*()。たとえば、これlsはcsvファイルを呼び出すだけです:

x <- system("ls *.csv", intern=TRUE)
于 2010-06-22T17:16:37.453 に答える
0

便利ですね。

実際の作業は、R ソースdo_glob()のファイル内のサブルーチンによって行われますsrc/main/sysutils.c。おそらく、パッチに向けた作業から始めることができますか?

GLOB_MARK条件付きで(利用可能になったときに)すでに追加されているので、その作業をシャドウできますか?

于 2010-06-22T17:13:11.173 に答える
0

bracerパッケージの機能は、ブレース展開を実行した後にファイルを検索glob()するラッパーです。Sys.glob()あなたの特定の例bracer::glob("/home/foo/{a,b}/bar.txt")では、実際にファイルが見つかり/home/foo/a/bar.txt/home/foo/b/bar.txt両方が存在する必要がある場合。

于 2019-08-08T20:30:34.870 に答える