[R-br] Criar um dataframe pela combinação de duas linhas de informação em *txt
ASANTOS
alexandre.santos em cas.ifmt.edu.br
Seg Mar 30 12:03:25 -03 2020
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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200330/2ca0d47d/attachment.html>
Mais detalhes sobre a lista de discussão R-br