如题,因为文件里的数据都是相同的字段。想以用3维数组的方式读取每个文件的数据并进行简单的求和运算。以文件名为维度,然后里面的数据为数据框。不知道如何实现。
求助:R语言可否用数组的方式批量读入上千个有规律文件名txt文件。
可以
手上有段现成代码:
# list files with pattern
filel = list.files("../dataset/out/", pattern = "fix3_1.61*", full.names=TRUE)
# read all files into a list, each element is a data.frame
data.l = lapply(filel, data.table::fread)
beginr 包开发版 (github: pzhaonet/beginr) 里有个函数,批量读入指定文件夹里的所有结构相同的文本文件,作为 list 或 data.frame ,而源文件的文件名作为 list 里的 name 或者 data.frame 的新列来存放:
beginr::readdir()
并没有读成三维数组。我觉得作为 list 或 data.frame 保存更为直观一些,后续处理也更方便,尤其是存为 data.frame 时,源文件名作为新列,这样就可以直接用 tapply()
以及 tidyr 的 gather()
和 spread()
函数折腾了。
谢谢一楼二楼两位大侠对小白的帮助,争取能吸收消化。
6 天 后
data.l = list()
data.l$a = matrix(rnorm(10),nrow= 5)
data.l$b = matrix(rnorm(10),nrow= 5)
data.l$c = matrix(rnorm(10),nrow= 5)
data.l.result = lapply(data.l, function(x){
return(x[1,1]+x[2,1])
})
data.l.result
#> $a
#> [1] -2.354201
#>
#> $b
#> [1] -1.333424
#>
#> $c
#> [1] -1.875295
<sup>Created on 2019-01-15 by the reprex package (v0.2.1)</sup>