Boa tarde!
Preciso criar uma coluna com números de projetos. Para conseguir essa informação, eu preciso extrair o primeiro número de caminho de Action, como na imagem abaixo.
O número do projeto é sempre o primeiro número que aparece nessa string. Ele pode chegar a ter até 2 dígitos, normalmente.
Tentei isso aqui, mas não deu certo:
user_log$Projeto[lines] = str_extract(user_log$Action[lines], regex=“/[0-9]”)
O que posso fazer?
Kaique, boa noite!
Eu fiz uma solução bem simples, não sei se vai resolver todos os casos que você vier a encontrar, segue exemplo:
# Item por item -----------------------------------------------------------
string1 <- "/project/export/2/flutter/451/801"
string2 <- "/project/predict/start/1"
string3 <- "/project/predict/start/12asve/12ds"
stringr::str_extract(
string1,
"[0-9]+"
)
#> [1] "2"
stringr::str_extract(
string2,
"[0-9]+"
)
#> [1] "1"
stringr::str_extract(
string3,
"[0-9]+"
)
#> [1] "12"
# Extraindo de uma base de dados ------------------------------------------
db <-tibble::tribble(
~action,
"/project/export/2/flutter/451/801",
"/project/predict/start/1",
"/project/predict/start/12asve/12ds"
)
db |>
dplyr::mutate(
numero_projeto = stringr::str_extract(
string = action,
pattern = "[0-9]+"
)
)
#> # A tibble: 3 x 2
#> action numero_projeto
#> <chr> <chr>
#> 1 /project/export/2/flutter/451/801 2
#> 2 /project/predict/start/1 1
#> 3 /project/predict/start/12asve/12ds 12
Created on 2021-12-16 by the reprex package (v2.0.1)
O que fiz foi usar o str_extract
que vai extrair a primeira correspondência que ele encontrar (no caso, queremos sempre o primeiro número). Como regex usei [0-9]+
pra trazer qualquer número grudado nesse primeiro número (para conseguir abordar os casos onde o projeto tem dois ou mais dígitos).
Espero que isso ajude!
Muito obrigado! Deu super certo. Valeu mesmo.
1 curtida