2016-09-22 4 views
0

私は何千もの.CSVファイルをRで操作するためのさらに冒険的なアプローチに戻っています。私は10個のファイルをすべてインポートしてマージし、 .CSVなどがありますが、結果は分析的に操作するにはあまりにも扱いにくいです。R 1000+ .CSVファイルのマージと周波数解析

私が必要なのは、 10個のファイルが1つのファイルにマージされます(ファイルの例については以下を参照してください)。列は周波数,チャンネルA(以降はチャンネルB)です。単にF、およびB、およびF値が(それゆえ私はmatrixを考えていた)すべてのファイルで同じです。 wrie.csvが値にいくつかの数学関数を実行するために前に最後に、私は、ヘッダー

| *F* | *A1* | *B1* | *A2* | *B2* | *A3* | *B3* | 

などになってしまいます... matrix/bind_colループの内側に10

に、それが可能であるA1-10の新しい列数は、平均でであり、平均値はであり、の頻度はです。私も他の人が必要ですが、私はそれを自分で分類します。

+------------+-------------+ 
    | Frequency | Channel A | 
    | (MHz) | (dBV) | 
    +------------+-------------+ 
     0.00000000,-27.85117000 
     0.00007629,-28.93283000 
     0.00015259,-32.89576000 
     0.00022888,-43.54568000 
    --- 
    Continued... 
    --- 
     19.99977312,-60.59710000 
     19.99984941,-48.58142000 
     19.99992571,-43.29094000 

あなたの時間をありがとう、私はあまりにも多くのデバッグを費やしてきたし、今私はよりエレガントな方法を探しています知っています。 PS:私の書式はどうですか?テーブルと.CSVスタイルの大失敗!

+0

読み込まれたファイルの後に 'write.csv'ファイルの名前を含めるのを忘れました。例:*ファイル名〜testJ〜1 *〜*〜〜testJ〜10 * 'write.csv'ファイル名= filename〜testJ.csv。どのように厄介な! –

+2

質問の修正にコメントを使用しないでください。 '[edit]'リンクを使用してください。それがそこにあるのですが、それを使うと質問の質が上がります。あなたは「あなたは戻っている」と言う。これは、他のリンクされていない質問には、答えが見つかると予想されるために、より多くの文脈があることを意味しますか?デバッグしているコードがありますが、コードは提供していません。 –

+0

ありがとう@ 42-。私はモバイルデバイスからのコメントだけを後で編集しなければならなかった。私は新しいユーザーとして、より多くのために戻ってきました。私はコードを挿入していない、より良い構造の例で新鮮なスタートを望んでいた。フォローするコード。 –

答えて

0

各ファイルがどのように見えるか、そして出力を希望するものの良い例といくつかのサンプルコードなしで答えが難しいです。

すべてのファイルを一度に読み込むことができるように、ファイルは十分に小さくなっていますか?

次のようなものが、私がそれであれば私が始めるところです。

library(data.table) 

filenames <- list.files(pattern = ".csv$") 

list_data <- vector(mode = "list", length = length(filenames)) 

i <- 1 
for (file in filenames){ 
    list_data[[i]] <- fread(file) 
    i <- i + 1 
} 

dat <- rbindlist(list_data, use.names = TRUE, fill = TRUE) 

その後、すべての有用なdata.table機能を使用できます。

dat[, .(meanA = mean(A), stdevA = sd(A)), by = Frequency] 
+0

'lapply'はforループを簡略化し、' mclapply'と並行して行うことができますが、実際に何をしているのかは分かります。 –