Présentation (commande SELECT IF)
SELECT IF sélectionne définitivement les observations à analyser en fonction des conditions logiques trouvées dans les données. Ces conditions sont spécifiées dans une expression logique. L'expression logique peut contenir des opérateurs relationnels, des opérateurs logiques, des opérations arithmétiques et toutes les fonctions autorisées dans les transformations COMPUTE . Pour la sélection temporaire de cas, spécifiez une commande TEMPORARY avant SELECT IF.
Spécification de base
La spécification de base est simplement une expression logique.
Règles de syntaxe
- Les expressions logiques peuvent être des variables logiques simples ou des relations, ou ces expressions peuvent être des tests logiques complexes impliquant des variables, des constantes, des fonctions, des opérateurs relationnels et des opérateurs logiques. L'expression logique peut utiliser n'importe quelle fonction numérique ou de chaîne autorisée dans les transformations
COMPUTE(voirCOMPUTEet Expressions de transformation ). - Des parenthèses peuvent être utilisées pour entourer l'expression logique. Des parenthèses peuvent également être utilisées dans l'expression logique pour spécifier l'ordre des opérations. Des blancs ou des parenthèses supplémentaires peuvent être utilisés pour faciliter la lecture de l'expression.
- Une relation peut comparer des variables, des constantes ou des expressions arithmétiques plus compliquées. Les relations ne peuvent pas être abrégées. Par exemple,
(A EQ 2 OR A EQ 5)est valide alors que(A EQ 2 OR 5)n'est pas valide. Les espaces (et non les virgules) doivent être utilisés pour séparer les opérateurs relationnels des expressions comparées. - Une relation ne peut pas comparer une variable de chaîne à une valeur numérique ou à une variable, ou inversement. Une relation ne peut pas comparer le résultat des fonctions logiques
SYSMIS,MISSING,ANYouRANGEà un nombre. - Les valeurs de chaîne utilisées dans les expressions doivent être indiquées entre guillemets et doivent inclure des blancs de début ou de fin. Les lettres minuscules sont considérées comme distinctes des lettres majuscules.
Opérations
SELECT IFsélectionne définitivement les observations. Les observations qui ne sont pas sélectionnées sont supprimées du jeu de données actif.- L'expression logique est évaluée comme vraie, fausse ou manquante. Si une expression logique est vraie, l'observation est sélectionnée ; si elle est fausse ou manquante, l'observation n'est pas sélectionnée.
- Plusieurs commandes
SELECT IFémises avant une commande de procédure doivent toutes avoir la valeur true pour qu'un cas soit sélectionné. SELECT IFdoit être placé avant les autres transformations pour plus d'efficacité.- Les expressions logiques sont évaluées dans l'ordre suivant: fonctions numériques, exponentiation, opérateurs arithmétiques, opérateurs relationnels et opérateurs logiques. Utilisez des parenthèses pour modifier l'ordre d'évaluation.
- Si
N OF CASESest utilisé avecSELECT IF, le programme lit autant d'enregistrements que nécessaire pour générer les n cas spécifiés. QueN OF CASESprécède ou suiveSELECT IFne fait aucune différence. - La variable système
$CASENUMest le numéro de séquence d'une observation dans le jeu de données actif. Bien qu'il soit syntaxiquement correct d'utiliser$CASENUMsurSELECT IF, il ne génère pas les résultats attendus. Pour sélectionner un ensemble d'observations en fonction de leur séquence dans un fichier, créez votre propre variable de séquence avec le langage de transformation avant d'effectuer la sélection (voir Exemples) .
Valeurs manquantes
- Si l'expression logique est indéterminée en raison de valeurs manquantes, l'observation n'est pas sélectionnée. Dans une expression relationnelle simple, une expression logique est indéterminée si l'expression de chaque côté de l'opérateur relationnel est manquante.
- Si une expression composée est utilisée dans laquelle les relations sont jointes par l'opérateur logique
OR, l'observation est sélectionnée si l'une des relations est vraie, même si l'autre relation est manquante. - Pour sélectionner des observations avec des valeurs manquantes pour les variables de l'expression, utilisez les fonctions de valeurs manquantes. Pour inclure des observations avec des valeurs déclarées manquantes de l'utilisateur, ainsi que d'autres observations, utilisez la fonction
VALUE.
Limites
SELECT IF ne peut pas être placé dans une structure FILE TYPE-END FILE TYPE ou INPUT PROGRAM-END INPUT PROGRAM . SELECT IF peut être placé presque n'importe où à la suite de ces commandes dans un programme de transformation. Pour plus d'informations, voir la rubrique Commandes et états de programme .