[R-br] Criar um dataframe pela combinação de duas linhas de informação em *txt

verginio em unesc.net verginio em unesc.net
Ter Mar 31 14:49:23 -03 2020


Boa tarde Alexandre,

Segue sugestão para leitura do seu documento de texto. Fiz um teste fazendo a leitura do arquivo como csv.



# define a pasta de trabalho para ler e salvar os arquivos
setwd(set_path)

# Faço a leitura do arquivo usando read.csv
## nesse caso já faz a leitura como data.frame e separa seis colunas
myfile <-
  read.csv(
    file = "result.txt",
    header = F,
    row.names = NULL,
    stringsAsFactors = F
  )
head(myfile)

# Novos nomes das colunas, incluindo a nova coluna "ica"
names_col <- c("left", "right", "top",
               "botton", "obj_id", "obj", "lca")

# arruma df
## lag passa o vetor 'atrasado' em uma linha
## str_detect filtra linhas que iniciam com "left"
## set_names coloca novos nomes das colunas
## str_remove, retira o texto no início dos valores
## str_remove, retira o simbolo de percentual da 7ª coluna,
### e transforma todas em número, exceto a 6ª coluna
## trimws, retira o espaço sobrando na 6ª coluna
mydataframe <- myfile %>%
  mutate(V7 = lag(V1)) %>%
  filter(str_detect(V1, "^left")) %>%
  set_names(names_col) %>%
  mutate_all( ~ str_remove(.x, ".*[=:]")) %>%
  mutate_at(-6, ~ str_remove(.x, "%") %>% as.numeric) %>%
  mutate_at(6, trimws)

mydataframe


#Separo o nome do arquivo
## adicionei a extensão do arquivo, já nesta etapa [opicional]
filename <- myfile[1, 1] %>%
  str_extract(".*:") %>%
  str_remove("\\.jpg:") %>%
  paste0("pred_", ., ".txt")

filename

# salva o arquivo
write.table(x = mydataframe, file = filename)



Atenciosamente,
Max Richard Verginio

_____________________________________
Sent from http://r-br.2285057.n4.nabble.com



Mais detalhes sobre a lista de discussão R-br