2017-11-13 18 views
-1

* xlsxファイルからデータフレームを作成するスクリプトがあります。今は、複数のファイルを読み込み、データフレームを行ごとに追加するスクリプトの上にループを追加したいと思います。すべての列名が一致します。私はこれまでのサンプルコードを以下に示します。私が知ることから、スクリプトは両方のファイルを読み込んでいますが、各ファイルは前のファイルに追加するのではなく、前のファイルを上書きしています。どんな助けもありがとう!forループの複数のファイルからデータフレームを追加します

filenames <- Sys.glob("*.xlsx") 
data.files = list.files(pattern = "*.xlsx") 

datalist = list() 

for(title in c(paste(filenames , sep="."))) { 
    # ... make some data (final table named "Stats") 
    df <- data.frame(Stats) 
    df$title <- title # to keep track of file 
    datalist[[title]] <- df # add it to your list 
} 

big_data = do.call(rbind, datalist) 
+0

なぜ 'data.files = list.files(pattern =" * .xlsx ")'が使われていないのか? 'paste(filenames、sep ="。 ")'は何もしませんか? –

+0

私はエラーを再現することができません、それはすべていくつかの偽のファイル(3ファイル)で期待どおりにやっているようです。 –

+0

私はループにrbindを移動し、私はそれが動作していると信じています。 – SoccerAnalytics26

答えて

0

なぜ、ループ内にdata.framesを追加しようとしないのですか?ような何か:

final.df <- data.frame() 
for(title in c(paste(filenames , sep="."))) { 
    # ... make some data (final table named "Stats") 
    df <- data.frame(Stats) 
    final.df <- rbind(final.df, df) 
} 

big_data <- final.df 

は列を持ついくつかの問題があるかもしれませんが、あなたは最初のデータフレームを認識し、ちょうど最初のものでfinal.dfを置き換えることができます。

関連する問題