![](/img/trans.png)
[英]Import multiple CSV files, add same column headers and then cbind R
[英]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, ...)
將所有這些列按列綁定在一起。 最后,我們將基因名稱綁定到結果。
假設:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.