簡體   English   中英

讀取並綁定目錄中多個文件的第二列

[英]Read and cbind second column of multiple files in directory

我在單個目錄“ / path /”中有94個制表符分隔文件,沒有標題,第一列中有基因名稱,第二列中有計數。 有23000行。

我想將/ path /中的所有94個文件讀取到R中,並合並所有94個文件以創建單個數據框'counts.table',其中第一列包含基因名稱(相同且順序相同)所有94個文件的第1列)以及第二到第九十五列包含每個單獨文件的計數(即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(...)將指定路徑中所有文件的名稱list.files(...)到向量中。 然后,我們提取基因名稱:第一個文件的第1列(可以是任何文件)。 然后,我們使用lapply(files, function(fn)...)構建一個data.frames列表,其中包含每個文件的第二列,並使用do.call(cbind, ...)將所有這些列按列綁定在一起。 最后,我們將基因名稱綁定到結果。

假設:

  1. 在所有文件中,基因名稱的順序相同。
  2. 所有文件的行數完全相同。
  3. 路徑目錄僅包含您的基因文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM