ケィオスの時系列解析メモランダム

時系列解析,生体情報学,数学・物理などの解説です.

【R言語】ファイル名とパスの操作

Rでファイル名を操作するとき,入力するファイル名から拡張子を除いて,拡張子や名前を少し変えたファイル名を作りたいことがあります.例えば,"???.txt"(???には何か文字が入る)から".txt"を除いて,代わりに"_result.csv"をくっ付けて"???_result.csv"に変更するような場合です.

また,フルパスを含む形でファイル名を取得した場合に,パスとファイル名を分けたいことも,結構あります.例えば,"C:/Document/hoge/chaos.txt"を,パスの部分"C:/Document/hoge"と,ファイル名の部分"chaos.txt"に分ける場合です.Rでは,フォルダの区切りを"\"ではなく,"/"を使うことに注意してください.

以下に,私が使っている方法をメモしておきます.

ファイル名から拡張子を除く

これは,いくつか方法が考えられると思います.ここでは,

FN <- "chaos.txt"

を例とします.

1つ目の方法は,

as.character(strsplit(FN,"\\.")[[1]])[1]

とすることです.

2つ目の方法は,

sub('\\.[^.]*', "", FN) 

どちらも実行するとこんな感じになります.

> FN <- "chaos.txt"
> as.character(strsplit(FN,"\\.")[[1]])[1]
[1] "chaos"
> sub('\\.[^.]*', "", FN) 
[1] "chaos"
パスとファイル名を分ける

これは,コマンドが存在します.

FN <- "C:/Document/hoge/chaos.txt"

を例とすれば,パス名は

dirname(FN)

ファイル名は,

basename(FN)

で得られます.実際の実行結果は以下です.

> FN <- "C:/Document/hoge/chaos.txt"
> dirname(FN)
[1] "C:/Document/hoge"
> basename(FN)
[1] "chaos.txt"