首页 文章

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

提问于
浏览
3

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

2 回答

  • 5
    • 我会使用 list.files 按模式列出我的文件 .

    • lapply 循环遍历文件列表并使用 read.csv 创建列表data.frame

    • rbindlist 以大矩阵绑定所有内容 .

    temp = list.files(pattern="*.csv")
    named.list <- lapply(temp, read.csv)
    library(data.table)
    files.matrix <-rbindlist(named.list)
    
  • 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)
    

相关问题