読者です 読者をやめる 読者になる 読者になる

ルビスコくん空を飛ぶ

博士学生(D1)の日記です.日記に加えてプログラミング(R)のメモ書きもします.

文字列から特定の文字列を削除する

"hogehoge.txt"という文字列から".txt"を削除する方法.list.files()などでファイル名を取り出したのはいいが,拡張子は削除したい,というときに便利.

gsub()を使う.

f:id:pam715:20160624211757p:plain

一つ目の引数に検索文字列,次の引数に置換後の文字列,最後に置換したい文字列を入力する."hogehoge.txt"で,".txt"を""(空白)に置換すると"hogehoge"になるし,"oge"を""(空白)に置換すると"oge"がすべて削除されて"hh.txt"という文字列が返される.最初の"oge"だけを置換したい場合は,sub()を用いる.

f:id:pam715:20160624212218p:plain

私はひとつのテキストファイルからグラフを書いて,jpgファイルに元のテキストファイルのファイル名を反映させるために用いた.これができれば以下のような関数ができる.応用というほどでもないが.

1. ファイル名入力

2. ファイルをread.table()などで読み込む

3. 読み込んだファイルからグラフを描き,jpg()で保存する.jpg()の引数(保存するファイルのパス)としてファイル名を入力する.その際1で得たファイル名から拡張子を削除した文字列に".jpg"をpaste()で追加する.

以上のような関数(hogeと名づけるとする)を使うと,「ファイル名の取得 => グラフごとにファイル名を変更しながらグラフの描画」を自動化できる.例えば,

lf <- list.files(pattern=".txt") #ディレクトリないのテキストファイルを束ねる

mapply(hoge, lf) #hogeという関数をlfの要素に順々に適用していく

これでグラフの描画も楽チンになるはず.