我使用mzR包使用instrumentInfo()从.mzXML文件中提取简单信息。它给了我一个带有所需信息的1x5矩阵。但是,我想对整个目录中的每个文件执行此操作,并将信息输出到一个.txt或.csv文件中。我正在考虑使用for循环但是我的R知识是有限的。请帮忙,谢谢你的时间。
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 :(得分: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")
如果有人能想出更好的方法来实现这一点,请加入。谢谢。