实际工作中,有时需要同时读取很多csv,但又不能一个一个的read.csv
上回分享了assign函数解决了这个问题,https://www.jianshu.com/p/509300fdf923
但是发现了一个不用写循环的方法。
library(plyr)
- 设置工作路径
setwd("/Users/baiyunfan/desktop/ego")
工作路径下,有这样的两个文件,它们是我做完WGCNA得到的子模块。
这两个文件均是以“_ego.csv”结尾的, Sys.glob是能查看指定路径下的文件名
names<-Sys.glob("*_ego.csv")
利用lapply批量读取,数据以list的形式展示
list_dataset<-lapply(names,function(x){read.csv(x)[,c(1,2,4,6)]})
names(list_dataset)<-names
ldply是处理list的函数,把list转化成矩阵,真是一个神函数
ego.all<-ldply(list_dataset)
这时在前面就会多出一列,表示对应数据来源的文件名