5

完全なファイル名がわからないファイルを R に読み込む方法はありますか。何かのようなもの。

read.csv("abc_*")

この場合、後の完全なファイル名はわかりませんabc_

4

1 に答える 1

9

条件に一致するファイルが 1 つだけある場合は、次のように実行できます。

read.csv(dir(pattern='^abc_')[1])

複数のファイルがある場合、このアプローチでは最初のヒットのみが使用されます。より精巧なバージョンでは、すべての一致をループして、それらを 1 つのデータフレームなどに追加できます。

このパターンは正規表現を使用しているため、予想していたものとは少し異なることに注意してください (そして、質問に答えるために最初のショットで誤って想定したもの)。詳細は次を使用して見つけることができます?regex


サブミットしたいディレクトリがある場合は、dirそれに応じてコマンドを変更する必要があります。

read.csv(dir('path/to/your/file', full.names=T, pattern="^abc"))

c:\\users\\user\\desktopあなたのケースで提出されたパスは、上記のパターンの場合があります。ファイル名だけでなく、パス全体をfull.names=T強制的に出力します。そこで何が起こっているのかを理解するために、 なしでdir()実行してみてください。dir(...)read.csv


パスを完全な文字列として指定したい場合は、もう少し複雑になります。

filepath <- 'path/to/your/file/abc_'
read.csv(dir(dirname(filepath), full.names=T, pattern=paste("^", basename(filepath), sep='')))

ファイル名に正規表現キーワードが含まれている場合、そのプロセスは失敗します。その場合、対応するエスケープシーケンスを前もって置き換える必要があります。しかし、それはまた別のトピックです。

于 2012-11-30T07:39:44.873 に答える