writeLines()在for循环中不完全有效

问题描述 投票:0回答:1

我有一个for循环,在其中我将结果打印在.txt文件中。但是,writeLines()仅适用于一定数量的迭代。此外,我在执行代码时收到以下警告:关闭未使用的连接。

Script <- function(solver=NULL, modelDirectory="/home/fernandafalves/Desktop/Tese/") {
library(rAMPL)
ampl <- new(AMPL)

if (!is.null(solver)) {
    ampl$setOption("solver", solver)
}

ampl$read(paste(modelDirectory, "/Data_Simheuristic_CaseII.txt", sep=""))

for(scenario in 1:1){
    for(value in 1:1){                                                                                                                                                                                                                                                                                                                         
        for(variation in 1:3){
            fileConn <- file("ResultSimheuristic_CaseII.txt", "a")

            ...

            for(mm in 1:M){
                for(l in 1:CARD[[mm]]){
                    Mean <- Expected_OF_BS[l,mm]                        
                    SD <- Standard_Deviation[l,mm]
                    Min <- Minimum[l,mm]
                    Max <- Maximum[l,mm]
                    prob <- signif(1 - pnorm(112,Mean,SD), digits = 3)

                    writeLines(c(paste("Machine:", mm), paste("Sequence Number:", l), paste("Mean:", Mean), paste("SD:", SD), paste("Minimum value:", Min), paste("Maximum value:", Max), paste("Probability:", prob), "\n"), fileConn)                             
                }   
            }
            close(fileConn)     
        }
    }
}

}

在for循环的最后一次迭代中的.txt文件中,它只打印到行粘贴(“Minimum value:”,Min)。

r ampl
1个回答
0
投票

我刚才读过有关writeLines()的奇怪行为。这是R-bloggers Article。我想你可以使用write函数和append = TRUE参数。

write(line, file = "filename", append=TRUE)
© www.soinside.com 2019 - 2024. All rights reserved.