我有很多包含基因表達數據的文件。在每個文件中,基因名稱保存在「Gene_symbol」列中,表達量度(實數)保存在列「RPKM」中。文件名由一個標識符,後跟_和剩下的名稱(以「expression.txt」結尾)組成。我想將所有這些文件加載到R中作爲數據幀,對於每個數據幀,用原始文件的標識符重命名列「RPKM」,然後通過「Gene_symbol」將數據幀加入一個大數據幀「Gene_symbol」後跟所有具有來自單個文件的表達度量的列,每個列都標有原始標識符。如何用R中的部分數據幀標識符重命名數據幀的列?
我已經設法將原始文件的標識符轉換爲各個數據幀的名稱,如下所示。
files <- list.files(pattern = "expression.txt$")
for (i in files) {var_name = paste("Data", strsplit(i, "_")[[1]][1], sep = "_"); assign(var_name, read.table(i, header=TRUE)[,c("Gene_symbol", "RPKM")])}
所以現在我在一個階段,我有dataframes如下:
Data_id0001 <- data.frame(Gene_symbol=c("geneA","geneB","geneC"),RPKM=c(2.43,5.24,6.53))
Data_id0002 <- data.frame(Gene_symbol=c("geneA","geneB","geneC"),RPKM=c(4.53,1.07,2.44))
但我似乎並沒有能夠將RPKM柱與id000x位重命名。 (當然,這是完全自動化的方式,循環遍歷我將在真實場景中生成的所有數據幀。)
我試圖將標識符位存儲爲數據幀的註釋,但似乎是無法從循環內分配評論。
任何幫助,將不勝感激,
MCE
一個辦法是分配給開始之前做到這一點。 'tmp < - read.table(i,header = TRUE)[,c(「Gene_symbol」,「RPKM」)]; names(tmp)[2] < - strsplit(i,「_」)[[1]] [1];分配(var_name,tmp)'。也就是說,將多個數據幀分配到當前環境中可能不是最佳解決方案。用'lapply'將數據讀入'list'將會更加R-like。另外,還不清楚你是如何訪問這些數據框架的(例如用'get'?你知道他們的名字,還是像'ls'一樣依賴於某個想法?) – GSee 2014-10-04 21:48:10