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

2020-03-26 Por tôpico ASANTOS por (R-br)

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-requ...@listas.c3sl.ufpr.br escreveu:

Enviar submissões para a lista de discussão R-br para
r-br@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-requ...@listas.c3sl.ufpr.br

Você poderá entrar em contato com a pessoa que gerencia a lista pelo
endereço
r-br-ow...@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
(vergi...@unesc.net)
 2. Re: Editar dados em arquivo *txt em um data frame
(sznel...@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
(sznel...@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: vergi...@unesc.net
To: r-br@listas.c3sl.ufpr.br
Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
Message-ID:
<1738291108.330325.1585153664487.javamail.administra...@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: sznel...@uol.com.br
To: r-br@listas.c3sl.ufpr.br
Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
Message-ID:
<5e7bce22943e_5e922b1d522cd10870...@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 
To: a lista Brasileira oficial de discussão do programa R.

Subject: Re: [R-br] Editar dados em arquivo *txt em um data frame
Message

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

2020-03-25 Por tôpico Cesar Rabak por (R-br)
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@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@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.


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

2020-03-25 Por tôpico Cesar Rabak por (R-br)
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@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@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@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.
>
> ___
> 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.
>
___
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.


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

2020-03-25 Por tôpico Mauro Sznelwar por (R-br)
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)  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)mydfAtenciosamente,Max Richard Verginio_Sent from http://r-br.2285057.n4.nabble.com___R-br mailing listR-br@listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-brLeia 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.

___R-br mailing listR-br@listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-brLeia 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.


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

2020-03-25 Por tôpico Cesar Rabak por (R-br)
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@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@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.
>
___
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.


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

2020-03-25 Por tôpico Mauro Sznelwar por (R-br)
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)mydfAtenciosamente,Max Richard Verginio_Sent from http://r-br.2285057.n4.nabble.com___R-br mailing listR-br@listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-brLeia 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.


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

2020-03-25 Por tôpico Max Richard Verginio por (R-br)
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@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] Editar dados em arquivo *txt em um data frame

2020-03-25 Por tôpico ASANTOS por (R-br)


Prezados membros do r-br,


Eu gostaria de criar um data frame à partir de output de uma análise em 
*txt, sendo:



#Arquivo original
https://www.dropbox.com/s/pncmjwl3camap6d/log.txt?dl=0

#Faço a leitura do arquivo
myfile<-read.table("log.txt", sep="\t", quote="", comment.char="")


#Estrutura parcial do arquivo myfile
#
obj
Learning Rate: 0.001, Momentum: 0.9, Decay: 0.0005
Resizing
416
Loaded: 0.062388 seconds
Region 82 Avg IOU: 0.254732, Class: 0.00, Obj: 0.575008, No Obj: 
0.417811, .5R: 0.00, .75R: 0.00,  count: 4
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.496387, .5R: 
-nan, .75R: -nan,  count: 0
Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.415856, .5R: 
-nan, .75R: -nan,  count: 0
Region 82 Avg IOU: 0.263274, Class: 0.00, Obj: 0.306391, No Obj: 
0.418069, .5R: 0.00, .75R: 0.00,  count: 4
Region 94 Avg IOU: 0.435966, Class: 0.00, Obj: 0.207774, No Obj: 
0.496172, .5R: 0.00, .75R: 0.00,  count: 1
Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.413582, .5R: 
-nan, .75R: -nan,  count: 0
Region 82 Avg IOU: 0.303235, Class: 0.00, Obj: 0.424457, No Obj: 
0.418686, .5R: 0.00, .75R: 0.00,  count: 4
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.496352, .5R: 
-nan, .75R: -nan,  count: 0
Region 106 Avg IOU: 0.579218, Class: 0.00, Obj: 0.502197, No Obj: 
0.415232, .5R: 1.00, .75R: 0.00,  count: 1
Region 82 Avg IOU: 0.187162, Class: 0.00, Obj: 0.501398, No Obj: 
0.416089, .5R: 0.00, .75R: 0.00,  count: 5
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.496362, .5R: 
-nan, .75R: -nan,  count: 0
Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.414499, .5R: 
-nan, .75R: -nan,  count: 0
Region 82 Avg IOU: 0.271427, Class: 0.00, Obj: 0.481964, No Obj: 
0.417647, .5R: 0.17, .75R: 0.00,  count: 6
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.495838, .5R: 
-nan, .75R: -nan,  count: 0
Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.415899, .5R: 
-nan, .75R: -nan,  count: 0
Region 82 Avg IOU: 0.285605, Class: 0.00, Obj: 0.469981, No Obj: 
0.417026, .5R: 0.00, .75R: 0.00,  count: 3
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.494833, .5R: 
-nan, .75R: -nan,  count: 0
Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.413943, .5R: 
-nan, .75R: -nan,  count: 0
Region 82 Avg IOU: 0.300229, Class: 0.00, Obj: 0.313481, No Obj: 
0.416831, .5R: 0.00, .75R: 0.00,  count: 6
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.495936, .5R: 
-nan, .75R: -nan,  count: 0
Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.413855, .5R: 
-nan, .75R: -nan,  count: 0
Region 82 Avg IOU: 0.384617, Class: 0.00, Obj: 0.398042, No Obj: 
0.418052, .5R: 0.33, .75R: 0.00,  count: 3
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.496205, .5R: 
-nan, .75R: -nan,  count: 0
Region 106 Avg IOU: 0.144387, Class: 0.00, Obj: 0.349722, No Obj: 
0.414624, .5R: 0.00, .75R: 0.00,  count: 1

1: 799.219543, 799.219543 avg, 0.00 rate, 654.661284 seconds, 24 images
Loaded: 0.42 seconds
Region 82 Avg IOU: 0.308919, Class: 0.00, Obj: 0.264983, No Obj: 
0.418332, .5R: 0.25, .75R: 0.00,  count: 4
Region 94 Avg IOU: 0.204282, Class: 0.00, Obj: 0.167168, No Obj: 
0.495162, .5R: 0.00, .75R: 0.00,  count: 2
Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.415848, .5R: 
-nan, .75R: -nan,  count: 0
Region 82 Avg IOU: 0.274081, Class: 0.00, Obj: 0.47, No Obj: 
0.418323, .5R: 0.00, .75R: 0.00,  count: 3
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.495826, .5R: 
-nan, .75R: -nan,  count: 0

...
55: 1025.803833, 1181.399658 avg, 0.00 rate, 919.132681 seconds, 
1320 images

Loaded: 0.50 seconds
#

Agora, eu quero criar um data frame onde eu não preciso de toda essa 
informação e eu sei que cada linha que eu preciso está acima de linha 
que começam com a expressão "Loaded:", sendo as minhas linhas de 
interesse caracterizadas pela estrutura "1: 799.219543, 799.219543 avg, 
0.00 rate, 654.661284 seconds, 24 images".


Eu preciso que seja criada alguma regra (informação desnecessária começa 
com a expressão "Region" e ocorre a cada 24 linhas) para que eu consiga 
inicialmente isolar a informação pertinente, ficando meu output 
processado com 55 linhas:


#
1: 799.219543, 799.219543 avg, 0.00 rate, 654.661284 seconds, 24 images
2: 799.555359, 799.253113 avg, 0.00 rate, 672.519735 seconds, 48 images
...
55: 1025.803833, 1181.399658 avg, 0.00 rate, 919.132681 seconds, 
1320 images

#

e após com alguma manipulação a mais de modo a reorganizar a informação 
isolada, conseguir gerar o meu data frame final, que seria:


#
iteration  total_loss  loss_error rate time   n_images
1   799.219543  799.219543  0.00  654.661284 24
2   799.555359  799.253113  0.00