writeLines()在for循环中无法完全正常工作

时间:2019-02-19 16:51:38

标签: r ampl

我有一个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)为止。

1 个答案:

答案 0 :(得分:0)

我前一段时间读过关于writeLines()的奇怪行为。这是R-bloggers Article。 我认为您可以将write函数与append = TRUE参数一起使用。

write(line, file = "filename", append=TRUE)