我是编程世界的新手,需要帮助将文件加载到 R 并用它创建矩阵。我可以导入单个文件并从中创建单个矩阵。如何对多个文件执行此操作?我有 21 个文件,每个文件包含 100 行和 100 列,我需要导入每个文件并将所有内容放在一个数组中。
问问题
6155 次
2 回答
5
- 我会用
list.files
模式列出我的文件。 lapply
遍历文件列表并创建一个列表 data.frameread.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 数组或具有 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)
于 2013-02-27T01:57:31.183 回答