2016-11-17 71 views
0

我正在使用mzR包從.mzXML文件中使用instrumentInfo()提取簡單信息。它給我一個1x5的矩陣和所需的信息。但是,我想要將其寫入整個目錄中的每個文件,並將這些信息輸出到一個.txt或.csv文件中。我正在考慮使用for循環,但是我的R知識是有限的。請幫忙,謝謝你的時間。for循環到cbind和write.csv

library("mzR") 

file<-list.files("C:/Users/sktrinh", pattern="\\.mzXML$",full.names=T,recursive=T) 

    N<-length(file) 
    for (i in 1:N) { 
     ms<-openMSfile(file[i]) 
     file.1<-as.data.frame(instrumentInfo(ms)) 
     m <- cbind(file.1, path=file[i])[,c(6,1,2,3,4,5)] 
    write.csv(m,"C:/Users/sktrinh/mzxml_output.csv") 

這裏是一個測試.mzXML文件的鏈接:https://drive.google.com/file/d/0B-COYPSEsQK7bjJRVFVyVFBiNkU/view?usp=sharing

回答

0

我寫了一個劇本的工作有很多的反覆試驗後:

library("mzR") 

file<-list.files("C:/Users/trinh/Downloads/", pattern="\\.mzXML$",full.names=T,recursive=T) 

mswrite<-function(z){ 
    ms<-openMSfile(z) 
    f<-as.data.frame(instrumentInfo(ms)) 
    m<-cbind(f,path=z)[,c(6,1,2,3,4,5)] 
} 

d<-data.frame() #generate empty data.frame 
N<-length(file) 
for (i in 1:N) { 
    y<-mswrite(file[i]) 
    d<-rbind(d,y) 
    } 

write.csv(d,"C:/Users/trinh/Downloads/mzxml_output.csv") 

如果有人能想出更好的方法來完成這一點,請鐘意。謝謝。