我是编程世界的新手,需要帮助将文件加载到R并使用它创建矩阵 . 我可以导入单个文件并从中创建单个矩阵 . 如何为多个文件执行此操作?我有21个文件,每个文件包含100行和100列,我需要导入每个文件并将所有内容放在一个数组中 .
我会使用 list.files 按模式列出我的文件 .
list.files
lapply 循环遍历文件列表并使用 read.csv 创建列表data.frame
lapply
read.csv
rbindlist 以大矩阵绑定所有内容 .
rbindlist
temp = list.files(pattern="*.csv") named.list <- lapply(temp, read.csv) library(data.table) files.matrix <-rbindlist(named.list)
目前还不清楚你想要什么样的结构 . 您可以选择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)
2 回答
我会使用
list.files
按模式列出我的文件 .lapply
循环遍历文件列表并使用read.csv
创建列表data.framerbindlist
以大矩阵绑定所有内容 .目前还不清楚你想要什么样的结构 . 您可以选择2100x100矩阵或2100x100数据帧或100x 100x 21阵列或具有21个条目的列表,每个条目为100 x 100.(在R中,数组是用于具有列的常规3维结构的术语所有相同的类型 . (然后当然有agstudy的建议你使用data.table . )
从某种意义上说,agstudy的代码已经为您提供了21个项目的数据框列表,每个维度:100x100:
要获得100 x 100 x 21阵列,请继续:
要获得2100 x 100数据帧,请继续:
从最后一行继续获得2100 x 100矩阵: