Comment créer une nouvelle variable dans le SAS par l'extraction d'une partie de la valeur d'une variable numérique?
J'ai deux jeux de données dans SAS que je voudrais fusionner, mais ils n'ont pas de variables. Un dataset est un "subject_id" variable, tandis que l'autre a un "mom_subject_id" à la variable. Ces deux variables sont de 9 chiffres des codes qui ont seulement 3 chiffres dans le milieu de la code avec le sens commun, et c'est ce que j'ai besoin de faire correspondre les deux ensembles de données lorsque je les fusionner.
Ce que je voudrais faire est de créer une nouvelle variable dans chaque ensemble de données qui est juste les 3 chiffres de l'intérieur l'ID de l'objet. Ces 3 chiffres seront toujours au même endroit dans les 9 chiffres de l'ID de l'objet, alors je me demandais si il existe un moyen pour extraire ces 3 chiffres à partir de la variable pour faire une nouvelle variable.
Merci!
OriginalL'auteur user1431654 | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
SQL(à l'aide des données de l'échantillon à partir des Données de l'Étape de code):
Données Étape:
OriginalL'auteur Jay Corbett
une alternative serait d'utiliser
et ensuite utiliser un join et substr() comme expliqué ci-dessus, si vous êtes à l'aise avec sql
OriginalL'auteur Botond
En supposant que votre "subject_id" la variable est un nombre puis le
substr
de fonction ne fonctionnent pas comme sas va essayer de convertir le nombre en une chaîne de caractères. Mais par défaut, il les plaquettes de l'épreuve sur la gauche du nombre.Vous pouvez utiliser le module de la fonction de
mod(input, base)
qui renvoie le reste quand l'entrée est divisé par la base.Ou en une seule ligne:
Ensuite, vous pouvez continuer à trier les nouvelles séries de données en identifiant puis en les fusionnant.
OriginalL'auteur Sheldon