da3 <- tibble::tibble(
a = c("a", "a", "a", "a", "a", "b", "b", "c", "c", "c")
)
da3 |>
dplyr::count(a)
# A tibble: 3 × 2
a n
<chr> <int>
1 a 5
2 b 2
3 c 3
dplyr::count()
dplyr::summarise()
é uma das funções mais úteis. Ela resume várias linhas.dplyr::summarise()
é normalmente é usado junto da função dplyr::group_by()
dplyr::group_by()
é usado, precisamos usar o dplyr::ungroup()
depois.summarise()
fica agrupado.set.seed(3)
da3 <- tibble::tibble(
a = c("a", "a", "a", "a", "a", "b", "b", "c", "c", "c"),
b = sample(1:10, 10, replace=T),
c = sample(c(TRUE, FALSE), 10, replace=T)
)
da3 |>
dplyr::group_by(a) |>
dplyr::summarise(
somatoria = all(c)
) |>
dplyr::ungroup()
# A tibble: 3 × 2
a somatoria
<chr> <lgl>
1 a FALSE
2 b FALSE
3 c FALSE
dplyr::arrange()
set.seed(3)
da3 <- tibble::tibble(
a = c("a", "a", "a", "a", "a", "b", "b", "c", "c", "c"),
b = sample(1:10, 10, replace=T)
)
da3 |>
dplyr::group_by(a) |>
dplyr::summarise(
somatoria = sum(b)
) |>
dplyr::ungroup() |>
dplyr::arrange(somatoria)
# A tibble: 3 × 2
a somatoria
<chr> <int>
1 b 16
2 c 21
3 a 36
set.seed(3)
da3 <- tibble::tibble(
a = c("a", "a", "a", "a", "a", "b", "b", "c", "c", "c"),
b = sample(1:10, 10, replace=T)
)
da3 |>
dplyr::group_by(a) |>
dplyr::summarise(
somatoria = sum(b)
) |>
dplyr::ungroup() |>
dplyr::arrange(desc(somatoria))
# A tibble: 3 × 2
a somatoria
<chr> <int>
1 a 36
2 c 21
3 b 16
character
, ela vai ordenar de forma alfabética.dplyr::distinct()
dplyr::mutate()
stringr
character
ou string
stringr
começam todas com o nome str_*
, em que * será substituído pela ação que a função irá fazer.Vejamos exemplos:
stringr::str_detect
= detecta se um determinado padrão está presente em um elemento do vetor, retornando TRUE (caso esse padrão seja identificado) ou FALSE (caso esse padrão não seja identificado*)stringr::str_remove
= retira um padrão de dentro de cada elemento do vetor. Se o padrão não for encontrado, ele mantém a string do mesmo jeitostringr::str_extract
= extrai um determinado padrão dentro de cada elemento do vetorO que veremos a seguir?
stringr::str_*_all
stringr
se aplica a cada elemento do vetorVamos para o R
txt <- "como será que funciona o pacote stringr?" # vetor atômico <chr>
# 1) exemplos e sintaxe
stringr::str_detect(string = txt, pattern = "r")
stringr::str_count(txt, "r")
stringr::str_remove(txt, "r")
stringr::str_extract(txt, "r")
# 2) a variante `all` das funções
stringr::str_remove(txt, "r")
stringr::str_remove_all(txt, "r")
# 3) a análise é feita para cada elemento do vetor
txts <- c(
"este é o texto 1",
"agora temos o texto 2",
"e o texto 3 também!!"
)
stringr::str_detect(txts, "texto")
# Eu quero retirar, de cada elemento do vetor, a palavra 'texto'.
# Qual das funções abaixo irá funcionar?
stringr::str_remove(txts, "texto")
stringr::str_remove_all(txts, "texto")
# E agora?
txts2 <- c(
"este é o texto 1",
"agora temos o texto 2",
"e o texto 3 também!!",
"tem o texto 4 que contem duas palavras texto"
)
stringr::str_remove(txts2, "texto")
stringr::str_remove_all(txts2, "texto")
# 4) O pipe funciona !!!
stringr::str_remove(txts, "texto") |>
stringr::str_detect("texto")
stringr::str_remove_all(txts, "texto") |>
stringr::str_detect("texto")
# 5) pattern e regex
txt_cnj <- c(
"eu tenho um processo aqui 00000235120248260471",
"aqui tem outro processo 0000035-74.2024.8.26.0177",
"agora eu to com um número (0000079-36.2023.8.26.0660) que fica no meio do texto",
"qual a diferença de um número de telefone +55 11 91827-8901 e de um número do CNJ? 00001461720238260299"
)
# queremos retirar o número do CNJ de todos os casos
stringr::str_extract(txt_cnj, "[:digit:]")
stringr::str_extract(txt_cnj, "\\d")
stringr::str_extract_all(txt_cnj, "\\d")
stringr::str_extract(txt_cnj, ".")
stringr::str_extract(txt_cnj, "\\.")
stringr::str_extract(txt_cnj, "\\d{7}-?\\d{2}\\.?\\d{4}\\.?\\d\\.?\\d{2}\\.?\\d{4}")
# 6) em uma pipeline, isso fica assim:
tibble::tibble(
txt = txt_cnj
) |>
dplyr::mutate(
id_processo = txt_cnj |>
stringr::str_extract("\\d{7}-?\\d{2}\\.?\\d{4}\\.?\\d\\.?\\d{2}\\.?\\d{4}") |>
stringr::str_remove_all("[:punct:]") |>
stringr::str_squish()
)
lubridate
stringr
dplyr::mutate()
date
ou POSIXct
numeric
, mas que aparecem para o usuário como se fosse uma string.date
é printado no seguinte formato:YYYY-MM-dd HH:mm:ss
character
dplyr::filter()
)lubridate
busca resolver esse problema!!!lubridate
são as funções que convertem vetores do tipo character
para vetores do tipo POSIXct
(ou de forma simplificada, para um vetor do tipo date
)lubridate
faz muito mais coisas! Você pode fazer contas com datas, ou lidar com fuso horário e horários de versão ao longo do mundo. Para mais informações, ver: