<div dir="ltr">Segue outra sugestão usando pacote base do R:<div><br></div><div>mydf <- cbind.data.frame(do.call(rbind, lapply(strsplit(myfile[!seq(length(myfile)) %% 2], ", "), function(x)gsub(".*\\=", "", x))), lca = gsub(".*\\:\\s+", "", myfile[seq(length(myfile)) %% 2]))<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 30, 2020 at 12:03 PM ASANTOS por (R-br) <<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<font face="Courier New, Courier, monospace">Prezados membros do
r-br,<br>
</font>
<div><font face="Courier New, Courier,
monospace"><br>
Eu gostaria de criar um novo data frame à partir de output de
uma análise em *txt empregando o pacote *tidyverse*, sendo:<br>
<br>
library(tidyverse)<br>
<br>
#Arquivo original<br>
<a href="https://www.dropbox.com/s/2f13c2wb66zfrmr/result.txt?dl=0" target="_blank">https://www.dropbox.com/s/2f13c2wb66zfrmr/result.txt?dl=0</a><br>
<br>
#Faço a leitura do arquivo<br>
myfile<-read_lines("result.txt")<br>
<br>
#Separo o nome do arquivo<br>
filename<-myfile[1]<br>
filename<-gsub("\\..*","",filename)<br>
filename<br>
#[1] "sample_107"<br>
<br>
#Então removo a primeira linha que só tem a informação do nome
do arquivo que o originou<br>
myfile<-myfile[-1]<br>
<br>
<br>
#Estrutura parcial do arquivo myfile<br>
#<br>
head(myfile)<br>
#[1] "lca: 84%"<br>
#[2] "left=475, right=586, top=0, bottom=527, obj_id=0, obj=lca
"<br>
#[3] "lca: 82%"<br>
#[4] "left=548, right=553, top=0, bottom=722, obj_id=0, obj=lca
"<br>
#[5] "lca: 79%"<br>
$[6] "left=439, right=534, top=174, bottom=440, obj_id=0,
obj=lca "<br>
#<br>
<br>
Agora, eu quero criar um data frame onde eu reorganize essa
informação de modo que sempre a linha superior que começa com
"lca:... forme a última coluna da informação da linha abaixo que
inicia-se com "left= ...., de forma que meu *dataframe* final
fique, baseado na estrutura parcial apresentada:<br>
<br>
left right top bottom obj_id obj lca<br>
475 586 0 527 0 lca 84<br>
548 553 0 722 0 lca 82<br>
439 534 174 440 0 lca 79<br>
<br>
Para ao final salvar como:<br>
write.table(mydataframe, paste0("pred_",filename, "*txt"),h=T)<br>
<br>
Tentei uma derivação das sugestões do Max, mas eu tenho um
problema, pois na primeira linha<br>
os valores estão depois de ":" e na segunda depois de "=".
Também tenho uma variável que chama lca<br>
na primeira linha e um nível lca na variável obj do meu arquivo
myfile.<br>
<br>
names_col <- c("left", "right", "top", "botton", "obj_id",<br>
"obj","lca")<br>
<br>
mydf <- myfile %>%<br>
str_subset("lca$") %>%<br>
enframe(name = NULL) %>%<br>
separate(col = value, into = names_col, sep = "[=,]") %>%<br>
mutate_all(parse_number)<br>
<br>
head(as.data.frame(mydf))<br>
#[1] left right top botton obj_id obj lca<br>
#<0 linhas> (ou row.names de comprimento 0)<br>
<br>
Alguém que trabalha com manipulação de tabelas em R teria alguma
dica para dar?<br>
<br>
Obrigado,<br>
<br>
Alexandre</font><br>
<br>
<br>
</div>
</div>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Henrique Dallazuanna<br>Curitiba-Paraná-Brasil<br>25° 25' 40" S 49° 16' 22" O</div>