4

私はプログラミングの世界に不慣れで、ファイルを R にロードして、それを使用して行列を作成する方法について助けが必要です。個々のファイルをインポートして、そこから個々のマトリックスを作成できます。複数のファイルに対してこれを行うにはどうすればよいですか? それぞれ 100 行と 100 列を含む 21 個のファイルがあり、各ファイルをインポートしてすべてを 1 つの配列に入れる必要があります。

4

2 に答える 2

5
  1. list.filesファイルをパターン別にリストするために使用します。
  2. lapplyファイルのリストをループしてリスト data.frame を作成するにはread.csv
  3. 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 に答える