[R-br] Editar dados em arquivo *txt em um data frame

ASANTOS alexandre.santos em cas.ifmt.edu.br
Qui Mar 26 16:47:26 -03 2020


Obrigado Max, Mauro e Cesar,

Deu certo, só tive que transformar o objeto *tibble* em *dataframe* na 
solução inicial do Max e tem outra que não necessita do pacote 
tidyverse, mas utilizam gsub, strsplit e grep, seguem as soluções:

# Solução 1
library(tidyverse)
myfile <- read_lines("log.txt")

names_col <- c("iteration", "total_loss", "loss_error", "rate", "time",
"n_images")

mydf <- myfile %>%
   str_subset("images$") %>%
   enframe(name = NULL) %>%
   separate(col = value, into = names_col, sep = "[:,]") %>%

mutate_all(parse_number)


  head(as.data.frame(mydf))
#  iteration total_loss loss_error rate     time n_images
#1         1   799.2195   799.2195    0 654.6613       24
#2         2   799.5554   799.2531    0 672.5197       48
#3         3   801.0438   799.4322    0 667.1184       72
#4         4   799.9001   799.4790    0 647.3321       96
#5         5   801.5366   799.6848    0 660.7798      120
#6         6   799.3589   799.6522    0 683.4424      144



#Solução 2
myfile <- read_lines("log.txt")
tmp <- myfile[grep("^\\d*\\:", unlist(myfile))]
tmp <- do.call(rbind, strsplit(tmp, ", "))
tmp <- data.frame(do.call(rbind, strsplit(tmp[, 1], "\\: ")), tmp[, -1],
                   stringsAsFactors=FALSE)
tmp[] <- lapply(tmp, gsub, pat="\\s.+", repl="")
tmp[] <- lapply(tmp, as.numeric)
mydf <- setNames(tmp, c("iteration", "total_loss", "loss_error", "rate",
                        "time", "n_images"))

head(mydf)
#   iteration total_loss loss_error rate     time n_images
# 1         1   799.2195   799.2195    0 654.6613       24
# 2         2   799.5554   799.2531    0 672.5197       48
# 3         3   801.0438   799.4322    0 667.1184       72
# 4         4   799.9001   799.4790    0 647.3321       96
# 5         5   801.5366   799.6848    0 660.7798      120
# 6         6   799.3589   799.6522    0 683.4424      144



Abraços,

Alexandre

Em 26/03/2020 11:00, r-br-request em listas.c3sl.ufpr.br escreveu:
> Enviar submissões para a lista de discussão R-br para
> 	r-br em listas.c3sl.ufpr.br
>
> Para se cadastrar ou descadastrar via WWW, visite o endereço
> 	https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
> corpo da mensagem para
> 	r-br-request em listas.c3sl.ufpr.br
>
> Você poderá entrar em contato com a pessoa que gerencia a lista pelo
> endereço
> 	r-br-owner em listas.c3sl.ufpr.br
>
> Quando responder, por favor edite sua linha Assunto assim ela será
> mais específica que "Re: Contents of R-br digest..."
>
>
> Tópicos de Hoje:
>
>      1. Re: Editar dados em arquivo *txt em um data frame
>         (verginio em unesc.net)
>      2. Re: Editar dados em arquivo *txt em um data frame
>         (sznelwar em uol.com.br)
>      3. Re: Editar dados em arquivo *txt em um data frame (Cesar Rabak)
>      4. Re: Editar dados em arquivo *txt em um data frame
>         (sznelwar em uol.com.br)
>      5. Re: Editar dados em arquivo *txt em um data frame (Cesar Rabak)
>      6. Re: Editar dados em arquivo *txt em um data frame (Cesar Rabak)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 25 Mar 2020 11:27:44 -0500 (CDT)
> From: verginio em unesc.net
> To: r-br em listas.c3sl.ufpr.br
> Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
> Message-ID:
> 	<1738291108.330325.1585153664487.JavaMail.administrator em n4.nabble.com>
> Content-Type: text/plain; charset=UTF-8
>
> Olá,
>
> Segue uma sugestão:
>
>
> library(tidyverse)
> myfile <- read_lines("log.txt")
>
> names_col <- c("iteration", "total_loss", "loss_error", "rate", "time", "n_images")
>
> mydf <- myfile %>%
>     str_subset("images$") %>%
>     enframe(name = NULL) %>%
>     separate(col = value, into = names_col, sep = "[:,]") %>%
>     mutate_all(parse_number)
>
> mydf
>
>
> Atenciosamente,
> Max Richard Verginio
>
> _____________________________________
> Sent from http://r-br.2285057.n4.nabble.com
>
>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 25 Mar 2020 18:33:22 -0300
> From: sznelwar em uol.com.br
> To: r-br em listas.c3sl.ufpr.br
> Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
> Message-ID:
> 	<5e7bce22943e_5e922b1d522cd10870933 em ip-10-81-19-112.ec2.internal.mail>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Um anexo em HTML foi limpo...
> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200325/4345eda5/attachment-0001.html>
>
> ------------------------------
>
> Message: 3
> Date: Wed, 25 Mar 2020 21:02:08 -0300
> From: Cesar Rabak <cesar.rabak em gmail.com>
> To: a lista Brasileira oficial de discussão do programa R.
> 	<r-br em listas.c3sl.ufpr.br>
> Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
> Message-ID:
> 	<CAKrF98=mp-fZR0jFxuN4VwOF_EceOenERbqav7a+OOucVqarvQ em mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> O arquivo que o OP postou o *link* não lhe parece adequado?
>
>
>
> On Wed, Mar 25, 2020 at 6:33 PM Mauro Sznelwar por (R-br) <
> r-br em listas.c3sl.ufpr.br> wrote:
>
>> Tem um arquivo para rodar e ver como fica?
>>
>>
>> Olá,
>>
>> Segue uma sugestão:
>>
>>
>> library(tidyverse)
>> myfile <- read_lines("log.txt")
>>
>> names_col <- c("iteration", "total_loss", "loss_error", "rate", "time",
>> "n_images")
>>
>> mydf <- myfile %>%
>> str_subset("images$") %>%
>> enframe(name = NULL) %>%
>> separate(col = value, into = names_col, sep = "[:,]") %>%
>> mutate_all(parse_number)
>>
>> mydf
>>
>>
>> Atenciosamente,
>> Max Richard Verginio
>>
>> _____________________________________
>> Sent from http://r-br.2285057.n4.nabble.com
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em 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 em 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.
>>
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200325/53488a8e/attachment-0001.html>
>
> ------------------------------
>
> Message: 4
> Date: Wed, 25 Mar 2020 21:27:44 -0300
> From: sznelwar em uol.com.br
> To: r-br em listas.c3sl.ufpr.br
> Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
> Message-ID:
> 	<5e7bf70012764_4c462b1d522cd1087147c em ip-10-81-19-112.ec2.internal.mail>
> 	
> Content-Type: text/plain; charset="iso-8859-1"
>
> Um anexo em HTML foi limpo...
> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200325/5fcc4576/attachment-0001.html>
>
> ------------------------------
>
> Message: 5
> Date: Wed, 25 Mar 2020 21:31:37 -0300
> From: Cesar Rabak <cesar.rabak em gmail.com>
> To: a lista Brasileira oficial de discussão do programa R.
> 	<r-br em listas.c3sl.ufpr.br>
> Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
> Message-ID:
> 	<CAKrF98nTgqFA9E_Zy5o6X2B2bEQ0LT=fdg1MtMx-nsTBy22xgQ em mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Veja esta linha no texto do OP:
>
>> #Arquivo original
>> https://www.dropbox.com/s/pncmjwl3camap6d/log.txt?dl=0
>>
> Fazendo a entrada conforme a sugestão do Max:
>> str(myfile)
>    chr [1:1445] "obj" "Learning Rate: 0.001, Momentum: 0.9, Decay: 0.0005" ...
>
> HTH
> --
> Cesar Rabak
>
>
> On Wed, Mar 25, 2020 at 9:27 PM Mauro Sznelwar por (R-br) <
> r-br em listas.c3sl.ufpr.br> wrote:
>
>> Muito obrigado pelo retorno! Sim, eu acabei vendo e consegui rodar, mas
>> ele só motra os dez primeiros dados, como faço para ver o resto?
>>
>>
>>
>> O arquivo que o OP postou o *link* não lhe parece adequado?
>>
>>
>>
>> On Wed, Mar 25, 2020 at 6:33 PM Mauro Sznelwar por (R-br) <
>> r-br em listas.c3sl.ufpr.br
>> <http://../../../undefined//compose?to=r-br@listas.c3sl.ufpr.br>> wrote:
>>
>>> Tem um arquivo para rodar e ver como fica?
>>>
>>>
>>> Olá,
>>>
>>> Segue uma sugestão:
>>>
>>>
>>> library(tidyverse)
>>> myfile <- read_lines("log.txt")
>>>
>>> names_col <- c("iteration", "total_loss", "loss_error", "rate", "time",
>>> "n_images")
>>>
>>> mydf <- myfile %>%
>>> str_subset("images$") %>%
>>> enframe(name = NULL) %>%
>>> separate(col = value, into = names_col, sep = "[:,]") %>%
>>> mutate_all(parse_number)
>>>
>>> mydf
>>>
>>>
>>> Atenciosamente,
>>> Max Richard Verginio
>>>
>>> _____________________________________
>>> Sent from http://r-br.2285057.n4.nabble.com
>>>
>>> _______________________________________________
>>> R-br mailing list
>>> R-br em listas.c3sl.ufpr.br
>>> <http://../../../undefined//compose?to=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 em listas.c3sl.ufpr.br
>>> <http://../../../undefined//compose?to=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 em 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 em 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.
>>
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200325/9e13902f/attachment-0001.html>
>
> ------------------------------
>
> Message: 6
> Date: Wed, 25 Mar 2020 21:36:32 -0300
> From: Cesar Rabak <cesar.rabak em gmail.com>
> To: a lista Brasileira oficial de discussão do programa R.
> 	<r-br em listas.c3sl.ufpr.br>
> Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
> Message-ID:
> 	<CAKrF98nxi4mdR9mtQnS0DOwyfUeqKJ+EBKsAF1hHNKNSb11YvA em mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Só gostaria de comentar, que o resultado mydf finda sendo um *tibble* e não
> mais "apenas" um *data.frame*.
>
> Se isso é vantajoso ou requer que o tiblle seja demovido para data.frame só
> Alexandre pode aquilatar...
>
> HTH
> --
> Cesar Rabak
>
> On Wed, Mar 25, 2020 at 1:28 PM Max Richard Verginio por (R-br) <
> r-br em listas.c3sl.ufpr.br> wrote:
>
>> Olá,
>>
>> Segue uma sugestão:
>>
>>
>> library(tidyverse)
>> myfile <- read_lines("log.txt")
>>
>> names_col <- c("iteration", "total_loss", "loss_error", "rate", "time",
>> "n_images")
>>
>> mydf <- myfile %>%
>>     str_subset("images$") %>%
>>     enframe(name = NULL) %>%
>>     separate(col = value, into = names_col, sep = "[:,]") %>%
>>     mutate_all(parse_number)
>>
>> mydf
>>
>>
>> Atenciosamente,
>> Max Richard Verginio
>>
>> _____________________________________
>> Sent from http://r-br.2285057.n4.nabble.com
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em 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.
>>
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200325/cb109757/attachment-0001.html>
>
> ------------------------------
>
> Subject: Legenda do Digest
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
>
> ------------------------------
>
> Fim da Digest R-br, volume 111, assunto 7
> *****************************************
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200326/9301f50a/attachment.html>


Mais detalhes sobre a lista de discussão R-br