Trame de données R : comment créer, ajouter, sélectionner et sous-ensemble

Qu'est-ce qu'une trame de données ?

A trame de données est une liste de vecteurs de même longueur. Une matrice ne contient qu'un seul type de données, tandis qu'une trame de données accepte différents types de données (numériques, caractères, facteurs, etc.).

Comment créer un bloc de données

Nous pouvons créer un dataframe dans R en passant la variable a,b,c,d dans la fonction data.frame(). Nous pouvons R créer un dataframe et nommer les colonnes avec name() et simplement spécifier le nom des variables.

data.frame(df, stringsAsFactors = TRUE)

Arguments:

  • df: Il peut s'agir d'une matrice à convertir en bloc de données ou d'une collection de variables à joindre
  • chaînesAsFactors: Convertir la chaîne en facteur par défaut

Nous pouvons créer un dataframe dans R pour notre premier ensemble de données en combinant quatre variables de même longueur.

# Create a, b, c, d variables
a <- c(10,20,30,40)
b <- c('book', 'pen', 'textbook', 'pencil_case')
c <- c(TRUE,FALSE,TRUE,FALSE)
d <- c(2.5, 8, 10, 7)
# Join the variables to create a data frame
df <- data.frame(a,b,c,d)
df

Sortie :

##     a         b     c     d
## 1  10        book  TRUE   2.5
## 2  20         pen  FALSE  8.0
## 3  30    textbook  TRUE   10.0
## 4  40 pencil_case  FALSE  7.0

Nous pouvons voir que les en-têtes de colonnes portent le même nom que les variables. Nous pouvons changer le nom de la colonne dans R avec la fonction noms(). Consultez l'exemple de trame de données de création R ci-dessous :

# Name the data frame
names(df) <- c('ID', 'items', 'store', 'price')
df

Sortie :

##   ID       items store price
## 1 10        book  TRUE   2.5
## 2 20         pen FALSE   8.0
## 3 30    textbook  TRUE  10.0
## 4 40 pencil_case FALSE   7.0
# Print the structure
str(df)

Sortie :

## 'data.frame':    4 obs. of  4 variables:
##  $ ID   : num  10 20 30 40
##  $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3
##  $ store: logi  TRUE FALSE TRUE FALSE
##  $ price: num  2.5 8 10 7

Par défaut, le bloc de données renvoie des variables de chaîne sous forme de facteur.

Tranche de données

Il est possible de couper les valeurs d'une trame de données. Nous sélectionnons les lignes et les colonnes à remettre entre parenthèses précédées du nom du bloc de données.

Un bloc de données est composé de lignes et de colonnes, df[A, B]. A représente les lignes et B les colonnes. Nous pouvons découper soit en spécifiant les lignes et/ou les colonnes.

De l'image 1, la partie gauche représente le Lignes, et la partie droite est la colonnes. Notez que le symbole : signifie à. Par exemple, 1:3 vise à sélectionner des valeurs parmi 1 à 3.

Tranche de données

Dans le diagramme ci-dessous, nous montrons comment accéder à différentes sélections du bloc de données :

  • La flèche jaune sélectionne le rangée 1 " colonne 2
  • La flèche verte sélectionne le lignes 1 à 2
  • La flèche rouge sélectionne le colonne 1
  • La flèche bleue sélectionne le lignes 1 à 3 et colonnes 3 à 4

Notez que si nous laissons la partie gauche vide, R sélectionnera toutes les rangées. Par analogie, si on laisse la partie droite vide, R sélectionnera toutes les colonnes.

Tranche de données

Nous pouvons exécuter le code dans la console :

## Select row 1 in column 2
df[1,2]

Sortie :

## [1] book
## Levels: book pen pencil_case textbook
## Select Rows 1 to 2
df[1:2,]

Sortie :

##   ID items store price
## 1 10  book  TRUE   2.5
## 2 20   pen FALSE   8.0
## Select Columns 1
df[,1]

Sortie :

## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4
df[1:3, 3:4]

Sortie :

##   store price
## 1  TRUE   2.5
## 2 FALSE   8.0
## 3  TRUE  10.0

Il est également possible de sélectionner les colonnes avec leurs noms. Par exemple, le code ci-dessous extrait deux colonnes : ID et store.

# Slice with columns name
df[, c('ID', 'store')]

Sortie :

##   ID store
## 1 10  TRUE
## 2 20 FALSE
## 3 30  TRUE
## 4 40 FALSE

Ajouter une colonne au bloc de données

Vous pouvez également ajouter une colonne à un bloc de données. Vous devez utiliser le symbole $ pour ajouter la variable dataframe R et ajouter une colonne à une dataframe dans R.

# Create a new vector
quantity <- c(10, 35, 40, 5)

# Add `quantity` to the `df` data frame
df$quantity <- quantity
df

Sortie :

##   ID       items store price quantity
## 1 10        book  TRUE   2.5       10
## 2 20         pen FALSE   8.0       35
## 3 30    textbook  TRUE  10.0       40
## 4 40 pencil_case FALSE   7.0        5

Remarque : Le nombre d'éléments dans le vecteur doit être égal au nombre d'éléments dans le bloc de données. Exécution de l'instruction suivante pour ajouter une colonne au dataframe R

quantity <- c(10, 35, 40)
# Add `quantity` to the `df` data frame
df$quantity <- quantity

Donne une erreur :

Error in `

lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40))
 replacement has 3 rows, data has 4

Sélectionnez une colonne d'un bloc de données

Parfois, nous devons stocker une colonne d'un bloc de données pour une utilisation future ou effectuer une opération sur une colonne. Nous pouvons utiliser le signe $ pour sélectionner la colonne dans un bloc de données.

# Select the column ID
df$ID

Sortie :

## [1] 1 2 3 4

Sous-ensemble d'un bloc de données

Dans la section précédente, nous avons sélectionné une colonne entière sans condition. Il est possible de sous-ensemble selon qu'une certaine condition était vraie ou non.

Nous utilisons la fonction subset().

subset(x, condition)
arguments:
- x: data frame used to perform the subset
- condition: define the conditional statement

Nous souhaitons retourner uniquement les articles dont le prix est supérieur à 10, nous pouvons faire :

# Select price above 5
subset(df, subset = price > 5)

Sortie :

ID       items store price
2 20         pen FALSE     8
3 30    textbook  TRUE    10
4 40 pencil_case FALSE     7