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.

SAS : la différence entre FIND et INDEX



Vous pouvez utiliser les fonctions FIND et INDEX dans SAS pour renvoyer la position du premier caractère d’une sous-chaîne qui apparaît dans une chaîne.

La différence entre ces fonctions est que la fonction FIND vous permet de faire deux choses que la fonction INDEX ne peut pas faire :

  • FIND vous permet d’effectuer une recherche insensible à la casse.
  • FIND vous permet de spécifier une position de départ pour la recherche.

Les exemples suivants illustrent la différence entre les fonctions FIND et INDEX en pratique avec l’ensemble de données suivant dans SAS qui contient une colonne de phrases :

/*create dataset*/
data original_data;
    input phrase $40.;
    datalines;
A pig is my favorite animal
My name is piglet
Pigs are so cute
Here is a baby pig
His name is piggie
;
run;

/*view dataset*/
proc print data=original_data;

Exemple 1 : Utilisation de FIND et INDEX sans différences

Le code suivant montre comment utiliser les fonctions FIND et INDEX pour rechercher la position de la première occurrence de la sous-chaîne « pig » dans la colonne d’expression :

/*find position of first occurrence of 'pig' in phrase column*/
data new_data;
    set original_data;
    find_pig = find(phrase, 'pig');
    index_pig = index(phrase, 'pig');
run;

/*view results*/
proc print data=new_data;

Notez que les fonctions FIND et INDEX renvoient exactement les mêmes résultats.

Les colonnes find_pig et index_pig afficher la position de la première occurrence de la sous-chaîne « cochon » dans la colonne de phrase .

Exemple 2 : Utilisation de FIND et INDEX avec une recherche insensible à la casse

Le code suivant montre comment utiliser les fonctions FIND et INDEX pour rechercher la position de la première occurrence du mot « PIG » dans la colonne d’expression :

/*find position of first occurrence of 'PIG' in phrase column*/
data new_data;
    set original_data;
    find_pig = find(phrase, 'PIG', 'i');
    index_pig = index(phrase, 'PIG');
run;

/*view results*/
proc print data=new_data;

En utilisant le modificateur « i » dans la fonction FIND , nous avons pu effectuer une recherche insensible à la casse de la sous-chaîne « PIG » dans la colonne de phrases.

Cependant, la fonction INDEX n’est pas en mesure d’effectuer une recherche insensible à la casse, elle a donc simplement renvoyé 0 pour chaque ligne puisque la sous-chaîne majuscule « PIG » n’existait dans aucune phrase.

Exemple 3 : Utilisation de FIND et INDEX avec une position de départ spécifique

Le code suivant montre comment utiliser la fonction FIND pour rechercher la sous-chaîne « cochon » dans la colonne de phrases commençant à la position 5 alors que la fonction INDEX n’est pas du tout capable d’utiliser une position de départ spécifique :

/*find position of first occurrence of 'pig' in phrase column starting at position 5*/
data new_data;
    set original_data;
    find_pig = find(phrase, 'pig', 5);
    index_pig = index(phrase, 'pig');
run;

/*view results*/
proc print data=new_data;

La fonction find_pig recherche la sous-chaîne ‘pig’ à partir de la position 5 de la colonne phrase .

La fonction index_pig recherche simplement la sous-chaîne « cochon » n’importe où dans la colonne de phrase puisqu’elle n’est pas capable de spécifier une position de départ pour la recherche.

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans SAS :

Comment utiliser la fonction SUBSTR dans SAS
Comment utiliser la fonction COMPRESS dans SAS
Comment utiliser la fonction COALESCE dans SAS

Ajouter un commentaire

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