Création

“A la main”

On peut créer des tableaux en associant des libellés à des vecteurs dans la fonction data.frame.

df = data.frame(x=rnorm(3), y=c('A', 'B', 'B'))
print(df)
##            x y
## 1 -1.8936471 A
## 2 -0.2521502 B
## 3  0.8515085 B

Jeux de données inclus

Le langage R inclut un grand nombre de jeux de données. Pour afficher la liste, utiliser library(help="datasets"). Par exemple, le jeu de données cars:

df = cars
print(head(df, 5))
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16

Sauvegarder / Charger

On peut enfin charger des données depuis un fichier externe.

df1 = data.frame(x=rnorm(3), y=c('A', 'B', 'B'))
print(df1)
##            x y
## 1 -0.5084264 A
## 2  1.3782946 B
## 3 -1.9883528 B
data_path = file.path("data", "sample_df.csv")
write.csv(df1, data_path, row.names=FALSE)

df2 = read.csv(data_path)
print(df2)
##            x y
## 1 -0.5084264 A
## 2  1.3782946 B
## 3 -1.9883528 B

Sélection

Par libellé

L’opérateur $ permet de sélectionner les colonnes d’un tableau individuellement.

df = iris
print(head(df, 5))
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
print(head(df$Sepal.Length, 5))
## [1] 5.1 4.9 4.7 4.6 5.0

Par index

On peut aussi sélectionner des sous-tableaux par sélection numérique.

sub_df = df[1:5, 3:5]
print(sub_df)
##   Petal.Length Petal.Width Species
## 1          1.4         0.2  setosa
## 2          1.4         0.2  setosa
## 3          1.3         0.2  setosa
## 4          1.5         0.2  setosa
## 5          1.4         0.2  setosa
print(class(sub_df))
## [1] "data.frame"