
Olá! Gostaria de saber da possibilidade de capturar o [console] do R de forma dinâmica, como no software STATA - tudo o que sai na tela é copiado para um arquivo de log. Se houver interrupção, o log registra até o momento da interrupção. E se fosse possível habilitar isso no R, me ajudaria muito!!! Digo isso porque estou usando o comando [sink()] sink(file = log_file, append = TRUE, type = "output") Ocorre que o código lida com dados muito volumosos, dentro de um loop (com sub-loops também). Assim, na minha inocência tentei o seguinte - são 3 loops, um dentro do outro. Ao final do loop mais interno pus: - desliga o [sink()], - fecha o arquivo de saida (log_file - no intuito de salvar o que já tem) - abre o arquivo de saida (log_file) - "liga" o [sink] -------------------------- saida <- paste(....) #monta o nome do arquivo de saida log_file <- file(saida, open = "wt") sink(file = log_file, append = TRUE, type = "output") # começa a "captura" LOOP1- inicio pegar referencia no [arquivo_a] LOOP2- inicio montar nome [arquivo_b] LOOP3(varrer [arquivo_b] - particionando) - inicio tarefa1 tarefa2 : tarefa_n sink() close(log_file) log_file <- file(saida, open = "at") sink(file = log_file, append = TRUE, type = "output") LOOP3( varrer [arquivo_b] - particionando ) - fim LOOP2 - fim LOOP1- fim -------------------------- Mas parece que o arquivo continua fechando só ao final do código, e com isso, se acaba a luz no meio do caminho, ou ocorre algum outro evento.... fico na saudade... Tem remédio????? ------------------------ Cinara Santos whatsApp (32) 9.8416-0441

sink(). Dá uma olhada nessa função. Em 19 de dez de 2018 11:13 AM, "Cinara Santos por (R-br)" < r-br@listas.c3sl.ufpr.br> escreveu: Olá! Gostaria de saber da possibilidade de capturar o [console] do R de forma dinâmica, como no software STATA - tudo o que sai na tela é copiado para um arquivo de log. Se houver interrupção, o log registra até o momento da interrupção. E se fosse possível habilitar isso no R, me ajudaria muito!!! Digo isso porque estou usando o comando [sink()] sink(file = log_file, append = TRUE, type = "output") Ocorre que o código lida com dados muito volumosos, dentro de um loop (com sub-loops também). Assim, na minha inocência tentei o seguinte - são 3 loops, um dentro do outro. Ao final do loop mais interno pus: - desliga o [sink()], - fecha o arquivo de saida (log_file - no intuito de salvar o que já tem) - abre o arquivo de saida (log_file) - "liga" o [sink] -------------------------- saida <- paste(....) #monta o nome do arquivo de saida log_file <- file(saida, open = "wt") sink(file = log_file, append = TRUE, type = "output") # começa a "captura" LOOP1- inicio pegar referencia no [arquivo_a] LOOP2- inicio montar nome [arquivo_b] LOOP3(varrer [arquivo_b] - particionando) - inicio tarefa1 tarefa2 : tarefa_n sink() close(log_file) log_file <- file(saida, open = "at") sink(file = log_file, append = TRUE, type = "output") LOOP3( varrer [arquivo_b] - particionando ) - fim LOOP2 - fim LOOP1- fim -------------------------- Mas parece que o arquivo continua fechando só ao final do código, e com isso, se acaba a luz no meio do caminho, ou ocorre algum outro evento.... fico na saudade... Tem remédio????? ------------------------ Cinara Santos whatsApp (32) 9.8416-0441 _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Oi, Cinara Eu não cheguei a montar uma forma de reproduzir seu problema aqui, mas uma sugestão é, em vez de desligar o sink e fechar a conexão do seu arquivo de log, usar o comando: flush(log_file) Se não me engano, esse comando vai garantir que os dados no buffer (memória) são salvos no arquivo (disco). Espero ter ajudado, Rodrigo Ângelo On Wed, Dec 19, 2018 at 11:20 AM Marcos Silva por (R-br) < r-br@listas.c3sl.ufpr.br> wrote:
sink(). Dá uma olhada nessa função.
Em 19 de dez de 2018 11:13 AM, "Cinara Santos por (R-br)" < r-br@listas.c3sl.ufpr.br> escreveu:
Olá!
Gostaria de saber da possibilidade de capturar o [console] do R de forma dinâmica, como no software STATA - tudo o que sai na tela é copiado para um arquivo de log. Se houver interrupção, o log registra até o momento da interrupção.
E se fosse possível habilitar isso no R, me ajudaria muito!!!
Digo isso porque estou usando o comando [sink()]
sink(file = log_file, append = TRUE, type = "output")
Ocorre que o código lida com dados muito volumosos, dentro de um loop (com sub-loops também). Assim, na minha inocência tentei o seguinte - são 3 loops, um dentro do outro. Ao final do loop mais interno pus:
- desliga o [sink()], - fecha o arquivo de saida (log_file - no intuito de salvar o que já tem) - abre o arquivo de saida (log_file) - "liga" o [sink]
-------------------------- saida <- paste(....) #monta o nome do arquivo de saida
log_file <- file(saida, open = "wt") sink(file = log_file, append = TRUE, type = "output") # começa a "captura"
LOOP1- inicio pegar referencia no [arquivo_a] LOOP2- inicio montar nome [arquivo_b] LOOP3(varrer [arquivo_b] - particionando) - inicio tarefa1 tarefa2 : tarefa_n
sink() close(log_file) log_file <- file(saida, open = "at") sink(file = log_file, append = TRUE, type = "output")
LOOP3( varrer [arquivo_b] - particionando ) - fim LOOP2 - fim LOOP1- fim --------------------------
Mas parece que o arquivo continua fechando só ao final do código, e com isso, se acaba a luz no meio do caminho, ou ocorre algum outro evento.... fico na saudade...
Tem remédio?????
------------------------ Cinara Santos whatsApp (32) 9.8416-0441 _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (3)
-
Cinara Santos
-
Marcos Silva
-
Rodrigo Ângelo