I have a data.frame in R with one column and truncated lines that I would like to divide into three columns via regex, for example:
dados <- c(
"N 2022NE001264 75",
"FRETES INTERNACIONAIS LTDA 7.500,00 C",
"N 2022NE000286 84",
"UNIRIO UNIVERSIDADE FEDERAL DO ESTADO RJ 2.856,71 C",
"N 2022NE001297 48 720,00 C",
"N 2022NE001333 16",
"CASTRO COMERCIO LTDA 5.256,00 C",
"N 2022NE001353 92",
"CONSTRUCOES E INSTALACOES LTDA 734,20 C",
"N 2022NE000279 12",
"UNIRIO UNIVERSIDADE FEDERAL DO ESTADO RJ 180,00 C",
"N 2022NE000293 12",
"EQUIPAMENTOS E PRODUTOS PARA LABORATORIOS L 1.716,00 C"
)
dados_df <- data.frame(V1 = dados)
with regex, I would like to transform my data.frame into something like this
nota org value
N 2022NE001264 75 FRETES INTERNACIONAIS LTDA 1500.00 C
N 2022NE000286 84 UNIRIO UNIVERSIDADE FEDERAL DO ESTADO RJ 2856.71 C
N 2022NE000297 48 720.00 C
N 2022NE001333 16 CASTRO COMERCIO LTDA 5256.00 C
N 2022NE001353 92 CONSTRUCOES E INSTALACOES LTDA 734.00 C
N 2022NE000279 12 UNIRIO UNIVERSIDADE FEDERAL DO ESTADO RJ 180.00 C
N 2022NE000293 12 EQUIPAMENTOS E PRODUTOS PARA LABORATORIOS L 1716.00 C
This is the code I have developed so far:
library(dplyr)
library(tidyr)
library(stringr)
dados_df <- dados_df %>%
mutate(
nota = str_extract(V1, "^N\s\d+NE\d+\s\d+\s*"),
org = str_extract(V1, "(?<=\d\s{1,}).*(?=\s{2,}\d)"),
value = str_extract(V1, "\d+\.?\d*,\d{2}\sC$")
)