En R, tout ce qui stocke de l'information est un objet. Les variables n'ont pas besoin d'être typées explicitement lors de leur création : R est un langage à typage dynamique. Le type d'une variable est automatiquement déduit de la valeur qui lui est affectée.
1. L'affectation en R : L'opérateur flèche <-#
Pour stocker une valeur dans une variable, la convention idiomatique de la communauté R est d'utiliser l'opérateur flèche gauche <- (composé du symbole inférieur < suivi d'un tiret -) :
# Affectation recommandée en R
score <- 95
nom <- "Alice"
# L'égalité simple fonctionne également mais est moins idiomatique
taux = 0.05
# R autorise aussi l'affectation vers la droite (rarement utilisée)
150 -> total
[!TIP] Raccourci clavier RStudio :
Appuyez surAlt + -(Windows/Linux) ouOption + -(macOS) pour insérer automatiquement l'opérateur<-avec ses espaces !
2. Les types de données atomiques fondamentaux#
Tout objet de base en R appartient à l'une des familles atomiques suivantes :
| Type R | Description | Exemples | Vérification | Conversion |
|---|---|---|---|---|
| Numeric (Double) | Nombres réels à virgule flottante (par défaut) | 3.14, -12.5, 42 |
is.numeric() |
as.numeric() |
| Integer | Nombres entiers stricts (suffixés par L) |
42L, 100L |
is.integer() |
as.integer() |
| Character | Chaînes de texte entre guillemets | "AlgoJungle", 'Paris' |
is.character() |
as.character() |
| Logical | Booléens (vrai ou faux) | TRUE, FALSE |
is.logical() |
as.logical() |
| Complex | Nombres complexes avec partie imaginaire | 2 + 3i |
is.complex() |
as.complex() |
Démonstration en code :#
# 1. Numérique décimal
x <- 42.5
class(x) # [1] "numeric"
typeof(x) # [1] "double"
# 2. Entier strict
n <- 42L
is.integer(n) # [1] TRUE
# 3. Chaîne de caractères
langage <- "Langage R"
nchar(langage) # Longueur : [1] 9
# 4. Booléen (en majuscules obligatoires)
actif <- TRUE
!actif # Négation : [1] FALSE
3. Les valeurs spéciales : NA, NaN, Inf et NULL#
L'analyse de données réelles est souvent confrontée à des anomalies ou des données manquantes. R possède un ensemble de valeurs spéciales très précises pour les modéliser :
NA(Not Available) : Représente une donnée manquante. Toute opération arithmétique avecNArenvoieNA(10 + NAdonneNA). Pour tester la présence de valeurs manquantes, utilisez impérativementis.na(x)et jamaisx == NA.NaN(Not a Number) : Résultat d'un calcul mathématique indéfini, comme \(0 / 0\) ou \(\sqrt{-1}\).Infet-Inf: L'infini positif ou négatif, obtenu par exemple en divisant un nombre non nul par zéro (1 / 0).NULL: L'objet vide, représentant l'absence totale de valeur ou d'élément.
valeur_manquante <- NA
is.na(valeur_manquante) # [1] TRUE
calcul_impossible <- 0 / 0
print(calcul_impossible) # [1] NaN
division_par_zero <- 10 / 0
print(division_par_zero) # [1] Inf
4. Gérer son environnement de travail en mémoire#
Lorsque vous créez des variables, celles-ci sont stockées dans l'environnement global de votre session R.
# Lister toutes les variables actuellement en mémoire
ls()
# ou
objects()
# Supprimer une variable spécifique de la mémoire
rm(score)
# Supprimer TOUTES les variables en mémoire (remise à zéro de la session)
rm(list = ls())
Mise en pratique#
- Déclarez une variable
prenomcontenant votre prénom, et une variableannee_naissancecontenant votre année de naissance sous forme d'entier (L). - Calculez votre âge approximatif en soustrayant
annee_naissanceà l'année courante et stockez le résultat dansmon_age. - Vérifiez le type de
mon_ageà l'aide de la fonctionclass(). - Testez ce qui se produit si vous additionnez
mon_age + NA.
Commentaires