私はプログラミングの世界に不慣れで、ファイルを R にロードして、それを使用して行列を作成する方法について助けが必要です。個々のファイルをインポートして、そこから個々のマトリックスを作成できます。複数のファイルに対してこれを行うにはどうすればよいですか? それぞれ 100 行と 100 列を含む 21 個のファイルがあり、各ファイルをインポートしてすべてを 1 つの配列に入れる必要があります。
質問する
6155 次
2 に答える
5
list.files
ファイルをパターン別にリストするために使用します。lapply
ファイルのリストをループしてリスト data.frame を作成するにはread.csv
rbindlist
すべてを大きなマトリックスにバインドします。temp = list.files(pattern="*.csv") named.list <- lapply(temp, read.csv) library(data.table) files.matrix <-rbindlist(named.list)
于 2013-02-27T01:28:50.067 に答える
2
どのような構造が必要かは明確ではありません。2100x100 のマトリックス、2100x100 のデータフレーム、100x 100x 21 の配列、またはそれぞれが 100 x 100 の 21 個のエントリを持つリストから選択できます (R では、配列は、列を持つ通常の 3 次元構造に使用される用語です)すべて同じタイプです (もちろん、data.table を使用するという agstudy の提案もあります)。
ある意味では、agstudy のコードは、それぞれの次元が 100x100 のデータフレームの 21 個の項目リストを既に提供しています。
temp = list.files(pattern="*.csv")
named.list <- lapply(temp, read.csv)
100 x 100 x 21 配列を取得するには、これを続けます。
require(abind)
arr <- abind(named.list)
2100 x 100 のデータフレームを取得するには、代わりに次のように続けます。
longdf <- do.call(rbind, named.list)
2100 x 100 の行列を取得するには、最後の行から次のように続けます。
longmtx <- data.matrix(longdf)
于 2013-02-27T01:57:31.183 に答える