
Prezados membros do r-br, Eu gostaria de criar um novo data frame à partir de output de uma análise em *txt empregando o pacote *tidyverse*, sendo: library(tidyverse) #Arquivo original https://www.dropbox.com/s/2f13c2wb66zfrmr/result.txt?dl=0 #Faço a leitura do arquivo myfile<-read_lines("result.txt") #Separo o nome do arquivo filename<-myfile[1] filename<-gsub("\\..*","",filename) filename #[1] "sample_107" #Então removo a primeira linha que só tem a informação do nome do arquivo que o originou myfile<-myfile[-1] #Estrutura parcial do arquivo myfile # head(myfile) #[1] "lca: 84%" #[2] "left=475, right=586, top=0, bottom=527, obj_id=0, obj=lca " #[3] "lca: 82%" #[4] "left=548, right=553, top=0, bottom=722, obj_id=0, obj=lca " #[5] "lca: 79%" $[6] "left=439, right=534, top=174, bottom=440, obj_id=0, obj=lca " # 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: left right top bottom obj_id obj lca 475 586 0 527 0 lca 84 548 553 0 722 0 lca 82 439 534 174 440 0 lca 79 Para ao final salvar como: write.table(mydataframe, paste0("pred_",filename, "*txt"),h=T) Tentei uma derivação das sugestões do Max, mas eu tenho um problema, pois na primeira linha os valores estão depois de ":" e na segunda depois de "=". Também tenho uma variável que chama lca na primeira linha e um nível lca na variável obj do meu arquivo myfile. names_col <- c("left", "right", "top", "botton", "obj_id", "obj","lca") mydf <- myfile %>% str_subset("lca$") %>% enframe(name = NULL) %>% separate(col = value, into = names_col, sep = "[=,]") %>% mutate_all(parse_number) head(as.data.frame(mydf)) #[1] left right top botton obj_id obj lca #<0 linhas> (ou row.names de comprimento 0) Alguém que trabalha com manipulação de tabelas em R teria alguma dica para dar? Obrigado, Alexandre