0

Rで複数のファイルを管理しようとしていますが、苦労しています。これらの各ファイルのデータを取得し、一連の手順でそれらを操作したいと考えています (すべてのファイルが同じ処理を受けます)。私はそれについて非常にばかげた方法で行っていると思います。900 個の適用ステートメントを使用せずに、多くのファイル (それぞれが以前と同じ) を管理する方法はありますか? たとえば、それぞれを個別に扱うのではなく、すべてのデータ フレームをマージすることが推奨されるのはいつですか? ここでファイルを入力する方法のように、2つ以上、または不明な数をマージする方法はありますか? または、非常に多くのファイルを処理するためのより良い方法はありますか?

私は標準的な方法でファイルを取ります:

chosen<-(tk_choose.files(default="", caption="Files:", multi=TRUE, filters=NULL, index=1))

しかしその後、データを使っていくつかのことをしたいと思います。今のところ、私はさまざまなものを適用していますが、混乱しています。見る:

ytrim<-lapply(chosen, function(x) strtrim(y, width=11))
chRead<-lapply(chosen,read.table,header=TRUE)
tmp<-lapply(inputFiles, function(x) stack(fnctn))

などなど。これは確かに推奨される方法ではありません。多数のファイルを処理するためのより良い方法はありますか?

4

1 に答える 1

1

すべての操作を含む 1 つの関数を作成し、次のようにすべてのファイルに適用できます。

doSomethingWithFile <- function(filename) {
    ytrim <- strtrim(filename, width=11))
    chRead<- read.table(filename,header=TRUE)
    # Return some result
    chRead
}

result<-lapply(chosen, doSomethingWithFile)

lapply は入力 (chosenこの場合は ) と同じ長さのリストを返す必要があるため、結果を返す方法について考えるだけで済みます。plyr柔軟性を高めるために、パッケージの適用機能の 1 つを調べることもできます。

(ところで:このコードにはエラーがないわけではありませんが、あなたの例でもありません...適切な例を挙げれば更新します)

于 2012-08-21T20:00:40.593 に答える