读取并绑定目录中多个文件的第二列
Read and cbind second column of multiple files in directory
我有 94 个制表符分隔的文件,没有 header,在单个目录“/path/”中,第一列是基因名称,第二列是计数。有 23000 行。
我想将 /path/ 中找到的所有 94 个文件读入 R 并合并所有 94 个文件以创建单个数据框 'counts.table' 其中第一列包含基因名称(相同和在所有 94 个文件的第 1 列中的顺序相同),ninety-fifth 列的第二个包含每个单独文件的计数(即 94 个文件中每个文件的第 2 列,它们是唯一编号)。最终的 counts.table 数据框将有 23000 行和 95 列。
理想情况下是这样的:
Column1 Column2 Column3 Column4... to column 95
gene a 0 4 3
gene b 4 9 9
gene c 3 0 8
...
to row 23000
第 2 列包含来自样本 X 的计数,第 3 列包含来自样本 Y 的计数,第 4 列来自样本 Z,等等。
我是否必须将每个文件单独读入 R,然后通过使用 cbind 添加每个文件的第二列来合并它们以创建 'counts.table'?提前致谢。
评论太长了。
像这样的东西应该有用。
# not tested
files <- list.files(path="./path")
genes <- read.table(files[1], header=FALSE, sep="\t")[,1] # gene names
df <- do.call(cbind,lapply(files,function(fn)read.table(fn,header=FALSE, sep="\t")[,2]))
df <- cbind(genes,df)
list.files(...)
将指定路径中的所有文件的名称抓取到一个向量中。然后我们提取基因名称:第一个文件的第 1 列(可以是任何文件)。然后我们使用 lapply(files, function(fn)...)
构建一个 data.frames 的列表,其中包含每个文件的第二列,并使用 do.call(cbind, ...)
按列将所有这些绑定在一起。最后,我们将基因名称绑定到结果。
假设:
- 基因名称在所有文件中的顺序相同。
- 所有文件的行数完全相同。
- 路径目录只有你的基因文件。
我有 94 个制表符分隔的文件,没有 header,在单个目录“/path/”中,第一列是基因名称,第二列是计数。有 23000 行。
我想将 /path/ 中找到的所有 94 个文件读入 R 并合并所有 94 个文件以创建单个数据框 'counts.table' 其中第一列包含基因名称(相同和在所有 94 个文件的第 1 列中的顺序相同),ninety-fifth 列的第二个包含每个单独文件的计数(即 94 个文件中每个文件的第 2 列,它们是唯一编号)。最终的 counts.table 数据框将有 23000 行和 95 列。
理想情况下是这样的:
Column1 Column2 Column3 Column4... to column 95
gene a 0 4 3
gene b 4 9 9
gene c 3 0 8
...
to row 23000
第 2 列包含来自样本 X 的计数,第 3 列包含来自样本 Y 的计数,第 4 列来自样本 Z,等等。
我是否必须将每个文件单独读入 R,然后通过使用 cbind 添加每个文件的第二列来合并它们以创建 'counts.table'?提前致谢。
评论太长了。
像这样的东西应该有用。
# not tested
files <- list.files(path="./path")
genes <- read.table(files[1], header=FALSE, sep="\t")[,1] # gene names
df <- do.call(cbind,lapply(files,function(fn)read.table(fn,header=FALSE, sep="\t")[,2]))
df <- cbind(genes,df)
list.files(...)
将指定路径中的所有文件的名称抓取到一个向量中。然后我们提取基因名称:第一个文件的第 1 列(可以是任何文件)。然后我们使用 lapply(files, function(fn)...)
构建一个 data.frames 的列表,其中包含每个文件的第二列,并使用 do.call(cbind, ...)
按列将所有这些绑定在一起。最后,我们将基因名称绑定到结果。
假设:
- 基因名称在所有文件中的顺序相同。
- 所有文件的行数完全相同。
- 路径目录只有你的基因文件。