Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment diviser une colonne en plusieurs colonnes dans R (avec exemples)



Vous pouvez utiliser l’une des deux méthodes suivantes pour diviser une colonne en plusieurs colonnes dans R :

Méthode 1 : utilisez str_split_fixed()

library(stringr)

df[c('col1', 'col2')] <- str_split_fixed(df$original_column, 'sep', 2)

Méthode 2 : utiliser séparé()

library(dplyr)
library(tidyr)

df %>% separate(original_column, c('col1', 'col2'))

Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.

Méthode 1 : utilisez str_split_fixed()

Supposons que nous ayons le bloc de données suivant :

#create data frame
df <- data.frame(player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 points=c(22, 29, 18),
                 assists=c(8, 4, 15))

#view data frame
df

         player points assists
1     John_Wall     22       8
2 Dirk_Nowitzki     29       4
3    Steve_Nash     18      15

Nous pouvons utiliser la fonction str_split_fixed() du package stringr pour séparer la colonne ‘player’ en deux nouvelles colonnes appelées ‘First’ et ‘Last’ comme suit :

library(stringr)

#split 'player' column using '_' as the separator
df[c('First', 'Last')] <- str_split_fixed(df$player, '_', 2)

#view updated data frame
df

         player points assists First     Last
1     John_Wall     22       8  John     Wall
2 Dirk_Nowitzki     29       4  Dirk Nowitzki
3    Steve_Nash     18      15 Steve     Nash

Notez que deux nouvelles colonnes sont ajoutées à la fin du bloc de données.

N’hésitez pas à réorganiser les colonnes et à supprimer les colonnes « joueur » d’origine si vous le souhaitez :

#rearrange columns and leave out original 'player' column
df_final <- df[c('First', 'Last', 'points', 'assists')]

#view updated data frame
df_final

  First     Last points assists
1  John     Wall     22       8
2  Dirk Nowitzki     29       4
3 Steve     Nash     18      15

Méthode 2 : utiliser séparé()

Le code suivant montre comment utiliser la fonction Separate() du package Tidyr pour séparer la colonne « player » en colonnes « première » et « dernière » :

library(dplyr)
library(tidyr)

#create data frame
df <- data.frame(player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 points=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c('First', 'Last'))

  First     Last points assists
1  John     Wall     22       8
2  Dirk Nowitzki     29       4
3 Steve     Nash     18      15

Notez que la fonction Separate() séparera les chaînes en fonction de toute valeur non alphanumérique.

Par exemple, si le prénom et le nom étaient séparés par une virgule, la fonction Separate() serait automatiquement divisée en fonction de l’emplacement de la virgule :

library(dplyr)
library(tidyr)

#create data frame
df <- data.frame(player=c('John,Wall', 'Dirk,Nowitzki', 'Steve,Nash'),
                 points=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c('First', 'Last'))

  First     Last points assists
1  John     Wall     22       8
2  Dirk Nowitzki     29       4
3 Steve     Nash     18      15

Vous pouvez trouver la documentation complète en ligne de la fonction Separate() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :

Comment combiner deux colonnes en une seule dans R
Comment trier un bloc de données par colonne dans R
Comment ajouter des colonnes au 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 *