library(tidyverse)
library(stringr)
library(nycflights13)
library(tidytext)
# Data textuelle
data_textuelle_ex1 <- tibble(
nom = c("Mr Eric Legrand", "Mme Anabelle Dupont", "Mme Fatou Slaoui"),
adresse = c("12 rue Archimède", "47 avenue de la Libération", "3 rue des Fleurs"),
ville = c("Niort", "Poitiers", "Marseille")
)
ex1_maj <- data_textuelle_ex1 %>%
mutate(
nom = str_to_upper(nom),
adresse = str_to_upper(adresse),
ville = str_to_upper(ville)
)
ex1_min <- data_textuelle_ex1 %>%
mutate(
nom = str_to_lower(nom),
adresse = str_to_lower(adresse),
ville = str_to_lower(ville)
)
ex1_cap <- data_textuelle_ex1 %>%
mutate(
nom = str_to_title(nom),
adresse = str_to_title(adresse),
ville = str_to_title(ville)
)
ex2 <- data_textuelle_ex1 %>%
mutate(adr_ville = paste(adresse, str_to_upper(ville), sep = " "))
ex3 <- paste(data_textuelle_ex1$nom,
data_textuelle_ex1$adresse,
data_textuelle_ex1$ville,
collapse = "|")
ex4 <- str_split(ex3, pattern = fixed("|"))
print(ex4)
## [[1]]
## [1] "Mr Eric Legrand 12 rue Archimède Niort"
## [2] "Mme Anabelle Dupont 47 avenue de la Libération Poitiers"
## [3] "Mme Fatou Slaoui 3 rue des Fleurs Marseille"
ex5 <- data_textuelle_ex1 %>%
separate(nom, into = c("genre", "prenom", "nom"), sep = " ")
# Data textuelle
data_textuelle_ex6 <- tibble( id = 1 :3, texte = c( "La data science est un domaine interdisciplinaire.",
"Le text mining permetd'analyser des documents.",
"Les ingénieurs utilisent R et Pythonpour le NLP." ) )
ex7 <- data_textuelle_ex6 %>%
mutate(texte = str_to_lower(texte)) %>%
mutate(texte = str_remove_all(texte, "[:punct:]")) %>%
mutate(texte = str_remove_all(texte, "[:digit:]"))
ex8_tokens <- ex7 %>%
unnest_tokens(word, texte)
ex8_freq <- ex8_tokens %>%
count(word, sort = TRUE)
data_textuelle_ex9 <- "Tom was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do : once or twice he had peeped into the book his sister was reading, but it had no pictures or conversations in it, 'and what is the use of a book,' thought Alice 'without pictures or conversation ?'"
ex9_nb_mots <- tibble(texte = data_textuelle_ex9) %>%
unnest_tokens(word, texte)
ex9_tot_mots <- nrow(ex9_nb_mots)
ex9_nb_mots %>%
count(word) %>%
mutate(probabilite = n / ex9_tot_mots) %>%
filter(word %in% c("of", "tom", "was", "to"))
## # A tibble: 4 × 3
## word n probabilite
## <chr> <int> <dbl>
## 1 of 3 0.0526
## 2 to 2 0.0351
## 3 tom 1 0.0175
## 4 was 2 0.0351
id_liberation <- str_which(data_textuelle_ex1$adresse, "Libération")
nb_liberation <- length(id_liberation)
ex11_valeurs_liberation <- str_extract(data_textuelle_ex1$adresse, "Libération")
data_textuelle_modifie <- data_textuelle_ex1 %>%
mutate(
nom = str_replace(nom, "Mr", "M."),
adresse = str_replace_all(adresse, c("rue" = "Rue", "avenue" = "Avenue"))
)
data_textuelle_modifie <- data_textuelle_modifie %>%
mutate(numero = str_extract(adresse, "\\d+"))
data_textuelle_ex13 <- data_textuelle_ex1 %>%
mutate(adresse_espace = str_pad(adresse, width = 30, side = "both"))
data_textuelle_ex13 <- data_textuelle_ex13 %>%
mutate(adresse_sans_espace = str_trim(adresse_espace, side = "both"))
data_textuelle_ex14 <- data_textuelle_ex1 %>%
mutate(
cont_numero = str_detect(adresse, "\\d+"),
numero_extrait = str_extract(adresse, "\\d+")
)
print(data_textuelle_ex14 %>% select(adresse, cont_numero, numero_extrait))
## # A tibble: 3 × 3
## adresse cont_numero numero_extrait
## <chr> <lgl> <chr>
## 1 12 rue Archimède TRUE 12
## 2 47 avenue de la Libération TRUE 47
## 3 3 rue des Fleurs TRUE 3
# Créer un DataFrame
df_ex15 <- tibble(
Id = 1:4,
Montant = c("10$", "20$", "40$", "50$")
)
# Détecter le symbole $
presence_dollar <- str_detect(df_ex15$Montant, "\\$")
# Calculer la moyenne
# Est-ce possible directement ? Non.
# Pourquoi ? La colonne Montant contient des caractères textuels, ce qui en fait une chaîne de caractères.
# Quel type de données obtient-on ? On obtient un message d'erreur ou NA car la fonction mean() nécessite des données de type numérique.
# Nettoyer la variable
df_ex15 <- df_ex15 %>%
mutate(
Prix = str_replace(Montant, fixed("$"), ""),
Prix = as.numeric(Prix)
)
moyenne_prix <- mean(df_ex15$Prix)
data("flights")
retard_dep# Créer une variable retard_dep
flights <- flights %>%
mutate(retard_dep = dep_delay > 0)
retard_extreme# Créer retard_extreme
flights <- flights %>%
mutate(retard_extreme = dep_delay >= 60)
on_time# Créer on_time
flights <- flights %>%
mutate(on_time = dep_delay == 0)
str_detect() sur texte# Utiliser : case_when() ou str_detect() sur une colonne convertie en texte.
flights <- flights %>%
mutate(
delay_text = as.character(dep_delay),
on_time_detect = str_detect(delay_text, "^0$")
)