# R data types : les principaux types de données en R

Comme dans tous les autres langages de programmation, en [programmation R](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/programmation-en-r/), il existe également différents types de données qui aident les programmateurs à structurer leurs données. Outre les types de données basiques en R (R basic data types), ce langage contient également des types de données plus complexes.

## Pourquoi utiliser des R data types ?

La programmation consiste souvent à traiter des données. Pour que ces données puissent être enregistrées en mémoire de manière adéquate, les développeurs ont le choix entre plusieurs types de données dans la plupart des langages. Les types de données peuvent par exemple être des nombres ou des chaînes de caractères.

Généralement, différents [opérateurs R](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/operateurs-r/) sont définis sur divers types de données. C’est pourquoi les types de données aident également les programmateurs à **traiter leurs données de manière appropriée** et ainsi à augmenter l’efficacité des programmes.

## Les différents R data types

En langage R, il existe un certain nombre de types de données. À moins que vous ne soyez [débutant en programmation](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/apprendre-la-programmation-principes-de-base/), certains types de données R devraient vous **rappeler d’autres langages de programmation**. Pour réaliser un contrôle du type de données en R (check data types in R), utilisez la [commande R](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/r-commandes/) *class()*, qui reçoit une variable quelconque comme paramètre de transfert et retourne le type de données de cette variable.

### Types de données numériques

Les types de données numériques font partie des **types de données basiques en R** et sont utilisés pour représenter des valeurs numériques. Les types de donnés numériques se subdivisent en plusieurs catégories : *numeric* pour les nombres réels, *integer* pour les nombres entiers et *complex* pour les nombres complexes ayant une partie imaginaire.

```R
x <- 3.14
y <- 42
z <- 3 + 2i
print(class(x))
print(class(y))
print(class(z))
```

Le résultat de ce code est le suivant :

```none
"numeric"
"numeric"
"complex"
```

À ce stade, vous vous demandez peut-être pourquoi le type de données *numeric* apparaît deux fois, bien que la valeur de la variable*y* soit un nombre entier ou un integer. La raison est simple : **en R, les entiers sont toujours simultanément *numeric***. Pour informer l’interpreter qu’il s’agit en fait d’un entier, vous devez accoler le suffixe*L* à vos nombres entiers :

```R
y <- 42L
print(class (y))
```

Désormais, l’appel de la fonction ci-dessus retourne le résultat attendu :

```none
"integer"
```

### Chaînes de caractères

Pour représenter du texte ou des caractères, vous pouvez recourir au type de données *character*. En langage R, vous pouvez signaler les données de ce type, mentionnées dans les [chaînes de caractères R](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/r-strings/), avec des **guillemets simples et doubles** :

```R
x <- "Hallo Welt!"
y <- 'Hello world!'
print(class(x))
print(class(y))
```

Ici également, la fonction « class() » peut être utilisée pour afficher le type de données de vos variables :

```none
"character"
"character"
```

### Types de données logiques

Les variables du type de données logiques, connu en langage R sous l’intitulé *logical*, sont analysées par l’interpreter comme « TRUE » ou « FALSE ». De cette manière, les **conditions ou expressions logiques** peuvent être formalisées. Cette fonctionnalité est souvent nécessaire pour commander le flux de contrôle du programme.

```R
x <- TRUE
y <- FALSE
print(class(x))
print(class(y))
```

Si vous recherchez le type de données des deux variables, vous constatez que le type de données en R *logical* leur est assigné :

```none
"logical"
"logical"
```

### Données brutes

En langage R, il existe un type de données à part pour voir vos **variables comme une séquence d’octets**. Ce type de données en R porte le nom *raw*. Pour convertir vos données en données brutes, vous pouvez utiliser la fonction « charToRaw() ». Pour procéder en sens inverse, utilisez la fonction « rawToChar() ».

Le code suivant présente comment une chaîne de caractères est convertie en une suite d’octets de type *raw* :

```R
x <- "Hallo Welt!"
y <- charToRaw(x)
print(y)
print(class(y))
```

Le code ci-dessus retourne ensuite à l’écran une séquence d’octets en nombres hexadécimaux. L’appel de « class() » veille ensuite à ce que le type de données de la variable *y* soit affiché :

```none
48 61 6c 6c 6f 20 57 65 6c 74 21
"raw"
```

Note En langage R, vous pouvez également convertir les données en un autre type de données. Un tel changement du type de données en R (change data types in r) est fréquent et même très simple : pour une chaîne de caractères composée d’un nombre (par exemple « 42 »), vous pouvez réaliser une addition simple avec 0 et ainsi faire en sorte de convertir la chaîne de caractère vers le type de données *numeric*.

## Structures de données en R

Outre les types de données basiques en R, il existe toute une série de structures de données qui aident les programmateurs à mieux structurer leurs données. Ces **structures de données sont plus complexes que les simples types de données** et, contrairement aux types de données, sont souvent également multidimensionnelles, par exemple les R dataframes.


This is a markdown version of: [https://www.ionos.fr/digitalguide/sites-internet/developpement-web/r-data-types/](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/r-data-types/) for AI/LLM consumption.