我是新来的编程世界,需要加载一个文件到R和与它建立一个矩阵帮助。 我可以导入单个文件,并创建和单个矩阵出来。 如何为多个文件做到这一点? 我有21个文件,每个包含100行和100列,我需要导入每个文件,并把一切都放在一个阵列。
Answer 1:
- 我会用
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)
Answer 2:
它不完全清楚自己想要什么样的结构。 可以将2100x100矩阵或2100x100数据帧或100倍100倍21阵列或具有21个条目的列表中的每个,其中是100×100(在该R的阵列是一个术语将用于与列的规则3维结构之间选择所有相同类型的。(然后当然还有就是你使用data.table agstudy的建议。)
从某种意义上说agstudy的代码已经为您提供了各方面的dataframes的21项列表:100×100:
temp = list.files(pattern="*.csv")
named.list <- lapply(temp, read.csv)
要获得100×100×21阵列继续这样的:
require(abind)
arr <- abind(named.list)
要获取2100×100数据帧,而不是继续使用:
longdf <- do.call(rbind, named.list)
要获取2100×100矩阵从最后一行继续:
longmtx <- data.matrix(longdf)
文章来源: Loading multiple files into matrix using R