2016-11-17 2 views
0

Я использую пакет mzR для извлечения простой информации из файла .mzXML с использованием инструмента InfoInfo(). Это дает мне матрицу 1x5 с требуемой информацией. Тем не менее, я хочу сделать это для каждого файла в целом каталоге и выводить информацию в один файл .txt или .csv. Я думал использовать цикл for, но мои знания R ограничены. Пожалуйста, помогите, спасибо за ваше время.для цикла для 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") 

Если кто-то может думать лучше способ сделать это, пожалуйста, звоните. Спасибо.