我知道這個問題以前已經被問到過了,但是以前的帖子的答案似乎無法解決我的問題。合併R中不同行的多個文件
我有幾十個製表符分隔的.txt文件。每個文件都有兩列(「pos」,「score」)。我想將所有「分數」列編譯成一個具有多列的文件。每個文件中的行數有所不同,它們與編譯無關。
如果有人能指導我如何做到這一點,最好在R,這將是很多有用的。
或者,我的最終目標是從每個文件中讀取「分數」列的中位數和平均值。因此,如果這可以完成,無論是否編譯文件,這將是更有幫助。
謝謝。
UPDATE:
作爲吸引力,因爲個人代碼忍者的想法是,我明白這將不得不仍然是一個幻想。抱歉不明確。
我已經lapply嘗試和減少,例如,
> files <- dir(pattern="X.*\\.txt$")
> File_list <- lapply(filesToProcess,function(score)
+ read.table(score,header=TRUE,row.names=1))
> File_list <- lapply(files,function(z) z[c("pos","score")])
> out_file <- Reduce(function(x,y) {merge(x,y,by=c("pos"))},File_list)
我知道沒有什麼意義,考慮到我有可變的行號。我也試過plyr
> files <- list.files()
> out_list <- llply(files,read.table)
以及cbind和rbind。通常我會收到錯誤消息,因爲行號不匹配,或者我只是將所有「分數」數據編譯到一列中。
對類似帖子的建議(例如,Merging multiple csv files in R,Simultaneously merge multiple data.frames in a list和Merge multiple files in a list with different number of rows)沒有幫助。
我希望這可以解決問題。
斯蒂芬 - 你能不能請告訴我們你之前曾經嘗試過什麼,什麼不起作用?您的問題可以很容易地在R中解決,但正如所述,它非常含糊。 SO用戶不是您爲您編寫代碼的個人代碼忍者。 – 2013-05-02 18:23:46
?合併。如何設置所有= FALSE(默認)不做你想要的? – 2013-05-02 19:03:40
@Jake要合併這些文件,我必須逐一列出它們,這正是我試圖避免的。 – stephanhart 2013-05-02 19:13:02