2016-11-17 3 views
0

Ich benutze MZR-Paket, um einfache Informationen aus einer. MzXML-Datei mit InstrumentInfo() zu extrahieren. Es gibt mir eine 1x5-Matrix mit den gewünschten Informationen. Ich möchte es jedoch für jede Datei in einem gesamten Verzeichnis ausführen und die Informationen in einer TXT- oder CSV-Datei ausgeben. Ich dachte daran, eine For-Schleife zu verwenden, aber mein R-Wissen ist begrenzt. Bitte helfen Sie, danke für Ihre Zeit.für Schleife zu cbind und 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") 

Hier ist ein Link zu einem Test .mzXML Datei: https://drive.google.com/file/d/0B-COYPSEsQK7bjJRVFVyVFBiNkU/view?usp=sharing

Antwort

0

Nach viel Versuch und Irrtum ich ein funktionierendes Skript geschrieben:

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") 

Wenn jemand eines besseren denken kann Um dies zu erreichen, bitte klingeln. Danke.

Verwandte Themen