規則的なファイル名の生成


パラメータ等を変えて繰り返し計算をした結果を、それぞれ異なるファイルに出力したい時があります。sprintf()やpaste()を用いて規則的なファイル名を自動的に生成し、出力することができます。

for(i in 1:10){
     a <- runif(10, min = 0, max = 5)
     write.table(a, file = paste("data_",sprintf("%02d",i),".txt",sep =""))
 }
コードの実行の結果、10個のファイルが生成された

paste()は ,  (カンマ)で区切られた文字列の要素を結合します。引数sepは結合される要素の間にはさむ文字を指定します。デフォルトでは半角スペースになっていますが、上では空白なしを指定しています。

sprintf()は文字列の書式を指定することができる関数です。ここでは桁数を2桁に揃える “%02d”という書式指定を用いて、「1,2,…,10」という1桁もしくは2桁の数字を「01,02,…,10」というように2桁の数字に揃えています。もちろん他にも様々な書式指定ができます。