matlab批量读取txt文件_如何批量读取合并文件

先描述一下情况,我有一个文件夹叫“原始1”

d73acbc06350e14edeac9fcba29b41fb.png

打开看一看,里面有大坏蛋 和小可爱文件

5053017000c9feb134dfa6baf1248fd0.png

3个大坏蛋文件,打开格式如下, 第一列基因ID一模一样,区别是第二列不同。

4b21017cecef82f14f4231c51284dbde.png

需求:

我们想把3个大坏蛋读取,合并成一个文件:第一列是基因ID,后面列都是表达值

批量读取文件三部曲:

1.找到文件名

2.构建文件的路径

3.lapply配合read.table读取

1. 找到文件名

dir查看‘原始1’里东西

p1'原始1',pattern = '*.counts')

大坏蛋名字都是.counts结尾,所以pattern参数指定读取counts结尾数据

278591b5243dc17c04f1edc5566dff04.png

2. 构建文件路径

构建文件目录

p2'原始1/',p1)

7d01af4bc150c843b62e574efd438b96.png

3. lapply 配合 read.table读取

a

row.names=1 意思是 原来的第一列,读取当做行名

返回的a是一个list, 这个list相当于一个柜子,每个抽屉存放着读取的3个文件

list 转 data.frame

a1<-data.frame(do.call(cbind,a))

do.call(cbind, a) 就是把 a这个list, 里面文件内容 按cbind列合并,返回data.table

所以进一步data.frame转换成数据框

df41e0d82d12477efa45be8d453d406e.png

大坏蛋读取、合并就此解决

3d258d28af2dd01fd1d4164e057e3ac9.png


版权声明:本文为weixin_39734458原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。