我是编程领域的新手,需要帮助将文件加载到R并使用它创建矩阵。我可以导入单个文件并从中创建单个矩阵。如何为多个文件执行此操作?我有21个文件,每个文件包含100行和100列,我需要导入每个文件并将所有内容放在一个数组中。
答案 0 :(得分:5)
list.files
按模式列出我的文件。 lapply
循环浏览文件列表并使用read.csv
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)