Comment sous-ensembler une trame de données dans R (4 exemples)



Vous pouvez utiliser la syntaxe de base suivante pour sous-ensembler un bloc de données dans R :

df[rows, columns]

Les exemples suivants montrent comment utiliser cette syntaxe en pratique avec le bloc de données suivant :

#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C', 'C', 'C'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1    A     77      19
2    A     81      22
3    B     89      29
4    B     83      15
5    C     99      32
6    C     92      39
7    C     97      14

Exemple 1 : bloc de données de sous-ensemble en sélectionnant des colonnes

Le code suivant montre comment sous-ensembler un bloc de données par noms de colonnes :

#select all rows for columns 'team' and 'assists'
df[ , c('team', 'assists')]

  team assists
1    A      19
2    A      22
3    B      29
4    B      15
5    C      32
6    C      39
7    C      14

Nous pouvons également sous-ensembler un bloc de données par valeurs d’index de colonne :

#select all rows for columns 1 and 3
df[ , c(1, 3)]

  team assists
1    A      19
2    A      22
3    B      29
4    B      15
5    C      32
6    C      39
7    C      14

Exemple 2 : bloc de données de sous-ensemble en excluant les colonnes

Le code suivant montre comment sous-ensembler un bloc de données en excluant des noms de colonnes spécifiques :

#define columns to exclude
cols <- names(df) %in% c('points')

#exclude points column
df[!cols]

  team assists
1    A      19
2    A      22
3    B      29
4    B      15
5    C      32
6    C      39
7    C      14

Nous pouvons également exclure des colonnes en utilisant des valeurs d’index

#exclude column 2
df[ , c(-2)]

  team assists
1    A      19
2    A      22
3    B      29
4    B      15
5    C      32
6    C      39
7    C      14

Exemple 3 : bloc de données de sous-ensemble en sélectionnant des lignes

Le code suivant montre comment sous-ensembler un bloc de données par lignes spécifiques :

#select rows 1, 5, and 7
df[c(1, 5, 7), ]

  team points assists
1    A     77      19
5    C     99      32
7    C     97      14

Nous pouvons également sous-ensembler un bloc de données en sélectionnant une plage de lignes :

#select rows 1 through 5
df[1:5, ]

  team points assists
1    A     77      19
2    A     81      22
3    B     89      29
4    B     83      15
5    C     99      32

Exemple 4 : trame de données de sous-ensemble basée sur des conditions

Le code suivant montre comment utiliser la fonction subset() pour sélectionner des lignes et des colonnes qui remplissent certaines conditions :

#select rows where points is greater than 90
subset(df, points > 90)

  team points assists
5    C     99      32
6    C     92      39
7    C     97      14

Nous pouvons également utiliser le | Opérateur (« ou ») pour sélectionner les lignes qui remplissent l’une des conditions suivantes :

#select rows where points is greater than 90 or less than 80
subset(df, points > 90 | points < 80)

  team points assists
1    A     77      19
5    C     99      32
6    C     92      39
7    C     97      14

Nous pouvons également utiliser l’opérateur & (« et ») pour sélectionner des lignes qui remplissent plusieurs conditions :

#select rows where points is greater than 90 and assists is greater than 30
subset(df, points > 90 & assists > 30)

  team points assists
5    C     99      32
6    C     92      39

Nous pouvons également utiliser l’argument select pour sélectionner uniquement certaines colonnes en fonction d’une condition :

#select rows where points is greater than 90 and only show 'team' column
subset(df, points > 90, select=c('team'))

  team
5    C
6    C
7    C

Ressources additionnelles

Comment supprimer des lignes du bloc de données dans R en fonction de la condition
Comment remplacer les valeurs dans le bloc de données dans R
Comment supprimer des colonnes du bloc de données dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *