借金エンジニアのささやき

借金まみれのエンジニアが色々ささやきます。(色々:借金、ダイエット、R言語、Python、ゲーム、ミスチル)

【R言語】CSVファイルを結合!


スポンサードリンク

おはようございます。こんにちは。こんばんは。

借金エンジニアです。

複数のCSVファイルを1つにまとめたい!

そんなことありませんか???

そんな時もR言語です。

f:id:debtengineer:20170804002103p:plain

需要ないかもしれませんが、もっと便利なツールがあるかもしれませんが、さくっと使えますし、簡単にカスタマイズもできると思いますので、CSVファイルをまとめたくなった時に使ってみてください。

コード

MergeCSV <- function(){
  
  #同じフォルダーのCSVファイルファイルの一覧を取得
  files <- dir(pattern = "\\.csv$")
  
  #ファイル数の確認
  file_num <- length(files)
  
  #処理の進捗をコンソールに表示
  message("------------------------------")
  file_num_message <- paste0(file_num,"個のCSVファイルを結合する処理を開始")
  message(file_num_message)
  message("------------------------------")
  
  #結合処理
  for(i in 1:file_num){
    
    for_message <- paste0(i,"個目/",file_num,"個中の結合処理を開始")
    message(for_message)
    
    if(i == 1){
      join_csv <- read.csv(files[1])
    } else {
      join_csv <- rbind(join_csv,read.csv(files[i]))
    }
    
  }
  
  #CSV出力
  write.table(join_csv,file="join.csv",sep=",",col.names=T,row.names=F,quote=F)

  #終了メッセージ表示
  message("CSVファイルの結合が完了しました。")
}

スクリプトファイルがあるフォルダーのCSVファイルの一覧を取得し、ファイル数分、rbindで結合しています。rbindなので列数が同じファイルを縦に結合しているイメージです。

(なぜ最後の「}」が白色になってしまうのだろう。。。)

おわりに

さくっと結合してくれます。ぜひ使ってください。

※紹介が雑ですね。。。
※あとで、コマンドの説明とか追加するかもです。