Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环遍历R中目录中的所有文件_R_Matlab - Fatal编程技术网

循环遍历R中目录中的所有文件

循环遍历R中目录中的所有文件,r,matlab,R,Matlab,这是我第一次使用R,我只需要输入一个包含一些文件的包,并将输出保存在其他一些文件中。我有一个目录,其中有一些扩展名为.pdb的文件。我需要在for循环中遍历这些文件,应用一些函数,并将每个文件的输出(即矩阵)保存在一个文件中,以便以后在Matlab中使用 这些是我希望应用于每个.pdb文件的函数 p=extractPDB("1HXH.pdb") cm<-build.contacts(n=p$lca,xyz=p$coords,cuts=169)$cm cm是我想保存在一个文件中的输出矩阵,

这是我第一次使用R,我只需要输入一个包含一些文件的包,并将输出保存在其他一些文件中。我有一个目录,其中有一些扩展名为.pdb的文件。我需要在for循环中遍历这些文件,应用一些函数,并将每个文件的输出(即矩阵)保存在一个文件中,以便以后在Matlab中使用

这些是我希望应用于每个.pdb文件的函数

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

cm是我想保存在一个文件中的输出矩阵,以后在Matlab中使用。

循环使用具有特定扩展名的文件很容易。实际上,您可以循环使用文件名

获取目录中所有文件的列表 仅获取以pdb结尾的文件 在名称上运行一个循环 您可能必须使用setwd更改工作目录


保存文件有很多选项,在matlab中读取文件时,最好将矩阵保存为csv文件。查看write.table的文档并调整参数,使其便于阅读。

您已经尝试过什么?为什么不起作用?从小事做起:如何处理一个文件?如何出口?如果可以这样做,请查看如何查找目录中的所有文件提示:list.files并重复操作。如果.pdb文件是蛋白质数据库,则可以使用函数在MatLab中直接打开它们
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)
}