<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>