使用R将多个文件加载到矩阵中

时间:2013-02-27 01:15:21

标签: arrays r csv matrix import

我是编程领域的新手,需要帮助将文件加载到R并使用它创建矩阵。我可以导入单个文件并从中创建单个矩阵。如何为多个文件执行此操作?我有21个文件,每个文件包含100行和100列,我需要导入每个文件并将所有内容放在一个数组中。

2 个答案:

答案 0 :(得分:5)

  1. 我会使用list.files按模式列出我的文件。
  2. lapply循环浏览文件列表并使用read.csv
  3. 创建列表data.frame
  4. rbindlist将所有内容绑定在一个大矩阵中。

    temp = list.files(pattern="*.csv")
    named.list <- lapply(temp, read.csv)
    library(data.table)
    files.matrix <-rbindlist(named.list)
    

答案 1 :(得分:2)

目前还不清楚你想要什么样的结构。您可以选择2100x100矩阵或2100x100数据帧或100x 100x 21阵列或具有21个条目的列表,每个条目为100 x 100.(在R中,数组是用于具有列的常规3维结构的术语所有相同的类型。(然后当然有agstudy的建议你使用data.table。)

从某种意义上说,agstudy的代码已经为您提供了21个项目的数据框列表,每个维度的维度:100x100:

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)