2015-09-10 343 views
0

這是我第一次使用R,我只需要輸入一些包含一些文件的包並將輸出保存在其他文件中。我有一個目錄,其中有一些帶有「.pdb」文件擴展名的文件。我需要在for循環中遍歷每個文件,應用一些函數,並將每個文件的輸出保存在一個文件中,以後我可以在Matlab中使用它。循環遍歷R中某個目錄中的所有文件

這些是我希望應用於每個.pdb文件的函數。

p=extractPDB("1HXH.pdb") 
cm<-build.contacts(n=p$lca,xyz=p$coords,cuts=169)$cm 

cm是我想保存在一個文件中的輸出矩陣,以後在Matlab中使用。

+1

你已經試過了什麼?爲什麼它不起作用?從小處着手:你將如何處理一個文件?你如何導出它?如果你能做到這一點,看看你如何找到目錄中的所有文件(提示:'list.files')並重復你的操作。 – Heroka

+0

如果'.pdb'文件是'Protein Data Bank',您可以使用[readpdb](http://it.mathworks.com/help/bioinfo/ref/pdbread.html)函數直接在MatLab中打開它們 –

回答

0

使用特定擴展名的文件循環很容易。其實你循環的文件名。

  1. 獲得目錄中的所有文件的列表
  2. 只獲取PDB結尾的文件
  3. 碾過名

了循環,你可能需要更改使用setwd

工作目錄
all.files <- list.files() 
my.files <- grep(".*pdb", all_files, value=T) 
for(i in my_files){ 
    # do your operations here 
    p=extractPDB("1HXH.pdb") 
    cm<-build.contacts(n=p$lca,xyz=p$coords,cuts=169)$cm 
    # save 
    output.filename <- gsub("(.*?).pdb", "\\1.csv", i) 
    write.table(cm, output.filename) 
} 

保存文件有很多選項,用於讀取matlab文件,可能是最好的將矩陣保存爲csv文件。查看write.table的文檔並調整參數,以便閱讀。