writeLines () не полностью работает внутри цикла for - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть цикл for, в котором я печатаю результаты в текстовом файле.Однако 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)     
        }
    }
}

}

В файле .txt в последней итерации цикла for он печатается только доВставка строки («Минимальное значение:», Мин).

1 Ответ

0 голосов
/ 19 февраля 2019

Я недавно читал о странном поведении с writeLines().Вот статья R-bloggers .Я думаю, что вы можете использовать функцию write с аргументом append = TRUE.

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