【发布时间】:2021-02-20 01:22:34
【问题描述】:
我试图在我的脚本中创建一个循环以获得输出文件。在我的脚本中,我已经有其他 2 个循环用于读取输入文件。在我的脚本结束时,我的环境中有一个 df,我想用输入文件的名称将其另存为 .csv。这是我的代码的简化版本:
filePdbs <- Sys.glob("*.pdb")
fileTurns <- Sys.glob("*.txt")
for (filePdb in filePdbs) {
"pdb" <- print(read.pdb(filePdb))
##other stuff here
"coord" <- print(read.pdb(filePdb))
##other stuff here
for (fileTurn in fileTurns) {
"turn" <- read.delim(fileTurn, header = T, sep = "")
## here I have lines for merging info from pdb and txt and I obtain my df that I'd like to save as csv
}
}
对于这两个输入文件循环,我必须为具有相同输入文件名称的 csv 输出创建第三个全局循环。 输入文件类似于“1abc_A.pdb”和“1abc_A.txt”,我希望输出“1abc_A.csv” 我该怎么做?
【问题讨论】:
-
首先,您需要纠正未对这些循环内的分配进行索引的基本错误。您正在覆盖输入工作的结果。
-
另外,为什么引用您返回的对象,例如“转”filePdb时都会循环阅读
fileTurns。这似乎是浪费时间。如果文件不是很大,将每种类型的所有内容读入列表会更有效然后使用循环处理列表。 -
我需要在同一个文件夹中的 1072 个文件 pdb 和 1072 个文件 txt 上执行我的脚本
-
另外,我合并了 pdb 和 txt 中的信息,所以我需要同时阅读它们。但我是 R 新手,所以如果有更好的方法,请告诉我