Conversion entre Variables numériques et de caractères¶

La conversion entre variables numériques et de caractères est l’un des problèmes les plus fréquemment rencontrés lors du traitement des ensembles de données. Cet article explique comment effectuer cette conversion correctement et efficacement.

Numeric to Character¶

Supposons qu’il existe un ensemble de données importé nommé filings, où cik est stocké en tant que variable numérique comme indiqué ci-dessous:

cik type de fichier date
1000229 8- D 2011-09-30
100591 8- D 2006-05-11
100826 8- D 2009-06-30
93542 8- D 2007-01-25

Étant donné que cik a des chiffres différents, pour convertir le cik numérique en une variable de caractères, la procédure naturelle consiste à le tamponner avec des zéros en tête. Par exemple, cik (Clé d’index centrale) elle-même est un nombre à 10 chiffres utilisé par SEC.

Dans SAS, la conversion d’une variable numérique en chaîne avec des zéros en tête (en supposant une longueur fixe à 10 chiffres) se fait via la fonction PUT():

123
data filings(drop=cik); set filings; cik_char = put(cik, z10.); run;

La fonction Tip

PUT() fonctionne également dans PROC SQL.

La variable cik_char générée est de format et d’information ., et l’ensemble de données devient:

cik_char type de fichier date
0001000229 8- D 2011-09-30
0000100591 8- D 2006-05-11
0000100826 8- D 2009-06-30
0000093542 8- D 2007-01-25

Dans STATA, la conversion d’une variable numérique en chaîne avec des zéros en tête (en supposant une longueur fixe à 6 chiffres) peut être réalisée via la fonction string().

1
gen char_var = string(num_var,"%06.0f")

Caractère en numérique¶

Dans SAS, la conversion d’une variable de caractère en numérique utilise la fonction INPUT():

1
var_numeric = input(var_char, best12.);

Dans STATA, cette conversion peut être effectuée via la fonction real() ou la commande destring.

1
gen num_var = real(char_var);

La fonction real() fonctionne sur une seule variable. La commande destring peut convertir toutes les variables de caractères en numérique en une seule fois.

1
destring, repalce

Avertissement

Si une variable de caractères contient des caractères non numériques, elle ne sera pas convertie. Dans un tel cas, vous pouvez choisir d’utiliser la commande encode, bien qu’elle génère en fait des catégories.

Une explication plus détaillée avec des exemples est disponible sur stats.idre.ucla.edu

Dernière mise à jour : 22 mai 2020

You might also like

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.