如果文件名有规律(没规律的话,可以找个批量改文件名的软件,文件名都改成数字序号),且都是.xlsx:
可以做个循环,每一次用openxlsx::read.xlsx(xlsxfile,sheet,cols)函数读入指定文件的指定sheet的指定cols,然后将读入的数据合并到上一次循环结果中。
例如:
d<-read.xlsx("iris.xlsx",sheet=1,cols=2)
如果方便将文件批量改为.csv,也可以用sqldf::read.csv.sql()函数,用sql指令作为参数,读入指定文件的指定列,例如:
ris2 <- read.csv.sql("iris.csv", sql = "select `Sepal.Length` from file where `Sepal.Width` >3" )
这两种方法都不用读入整个文件,所以内存占用不会很大。
合并的话,看你需要,可选cbind,append,mutate这些函数。
这些是本办法。如果用MySQL可以更方便。