Processeur Expression¶
Le processeur est versatile. Il peut comprendre une expression comme étant un argument et afficher le résultat dans un champ.
L'expression peut être composée des éléments suivants :
des identifiants ;
des littéraux (nombres, littéraux textuels, booléens et mots-clés) ;
des opérateurs ;
des fonctions.
Prérequis
Le processeur Expression se montre le plus utile en mode évaluation (c'est-à-dire qu'il "calcule et retourne le résultat de l'expression"). Ce mode est activé en commençant l'expression par un signe égal (=
). En l'absence de ce signe, le processeur n'évaluera pas l'expression et la reproduira simplement dans le champ de résultat.
Le signe (=
) devant être placé au début des expressions sera omis de l'ensemble des exemples ci-dessous.
Configurer le processeur¶
Pour définir les paramètres du processeur Expression, suivez les indications du tableau ci-dessous.
Label | Description | Obligatoire |
---|---|---|
Expression | Modèle d'expression |
oui |
Champ de sortie |
Champ dans lequel l'expression sera appliquée. Il peut s'agir d'un champ existant choisi dans la liste ou d'un champ créé à cette fin (dans ce cas, choisissez Saisir du texte dans la liste et écrivez le nom du nouveau champ dans la zone de texte en dessous). |
oui |
Formuler une expression¶
Une expression est une instruction à destination du processeur pour qu'il réalise une opération et retourne la valeur dans une colonne, nouvelle ou existante, du jeu de données.
Ces expressions ressemblent à ce qu'on appelle des "formules" dans un tableur type Excel. La principale différence est qu'au lieu de référencer des cellules (par ex. A1 + B2
), le processeur peut réaliser des opérations à partir des valeurs situées dans des colonnes données (par ex. column_1 + column_2
).
Comme les formules, les expressions peuvent combiner divers éléments. Le processeur Expression prend en charge les éléments suivants :
les identifiants (par ex. un nom de champ comme
column_1
ou un nom de champ verrouillé comme$column_1
) ;les littéraux :
les nombres (par ex.
2
ou3.6
) ;les littéraux textuels (par ex.
"hello"
ou'world'
) ;les booléens (par ex.
'true'
ou'false'
) ;les mots-clés (par ex. une constante mathématique comme
pi
oue
) ;
les opérateurs (par ex.
+
,OR
,not
,<=
) ;les fonctions (par ex.
now()
,sin(nombre)
,startswith("hello', 'he')
).
Les identifiants¶
La principale fonctionnalité du processeur Expression est sa capacité à réaliser des opérations dans les colonnes d'un enregistrement. L'identifiant technique (ou nom de champ) d'une colonne peut être utilisé dans une expression afin d'accéder aux valeurs contenues dans ce champ pour l'enregistrement actuel. Cet identifiant technique peut être trouvé dans les options de champ, sous le Nom
du champ concerné.
Exemples :
column_1
pour accéder à un champ nommécolumn_1
(et peut-être intitulé "Column 1")name_en
pour accéder à un champ nomméname_en
(et peut-être intitulé "Name (EN)")
Important
Dans certains cas, le nom du champ peut être ambigu, par exemple, s'il s'agit d'un nombre ou d'un mot-clé réservé (comme "pi", la constante mathématique, ou "e", le nombre d'Euler), ou encore s'il commence par un nombre.
Pour forcer le processeur Expression à évaluer un identifiant comme un nom de champ, il est possible d'ajouter le signe dollar ($
) devant un identifiant. Le signe dollar peut être utilisé avec n'importe quel nom de champ, mais il n'est obligatoire que pour les noms de champ ambigus.
Exemples :
$column_1
pour accéder à un champ nommécolumn_1
(et peut-être intitulé "Column 1")$name_en
pour accéder à un champ nomméname_en
(et peut-être intitulé "Name (EN)")$20_to_25_yo
pour accéder à un champ nommé20_to_25_yo
(et peut-être intitulé "20 to 25 years old")$33
pour accéder à un champ intitulé33
$pi
pour accéder à un champ intitulépi
Tout nombre ou littéral textuel peut être remplacé dans les exemples suivants par un nom de champ contenant des données du même type. Le processeur Expression extraira la valeur de la colonne spécifiée et s'en servira pour exécuter l'opération requise.
Une même expression peut contenir plusieurs champs (ou le même champ réutilisé plusieurs fois).
Expressions littérales¶
Les littéraux tels que les nombres, les littéraux textuels (entre guillemets simples ou doubles), les booléens et les mots-clés peuvent être utilisés dans n'importe quelle expression.
Exemples :
3
2.5
"Hello"
ou'Hello'
'A bigger sentence'
'true'
ou'false'
pi
,PI
ouPi
e
ouE
Opérateurs¶
Les opérateurs sont des symboles qui se comportent généralement comme des fonctions, mais sont utilisés avec une syntaxe plus naturelle.
Le processeur Expression prend en charge trois types d'opérateurs, en fonction du nombre de paramètres qui les entourent :
les opérateurs unaires peuvent être utilisés comme préfixes ou suffixes pour modifier la valeur d'1 expression ;
les opérateurs binaires peuvent être des opérateurs arithmétiques pour réaliser un calcul avec 2 expressions, ou des opérateurs booléens pour comparer le résultat de 2 expressions ;
l'opérateur ternaire pour convertir une expression conditionnelle en 1 ou 2 résultats possibles.
Remarque
Les opérateurs devraient être placés dans l'ordre suivant : factorielle, exponentielle, signe, division euclidienne, évaluation de fonction, multiplication/division, addition/soustraction, concaténation, not, comparaison, and, or, opérateur ternaire, opérateur ternaire sans else.
Opérateurs unaires¶
Opérateur |
Description | Exemple |
---|---|---|
- |
Préfixe rendant la valeur suivante négative |
- 4 , - [expression] |
not , ! (not) |
Opérateur booléen qui inverse la condition suivante |
|
|
Suffixe qui calcule la factorielle d'une expression |
|
Opérateurs binaires¶
Opérateur |
Description | Exemple |
---|---|---|
+ , - , * , / , % , // , ^ |
Opérateurs arithmétiques : ajouter, soustraire, multiplier, diviser, modulo, division euclidienne, puissance |
|
|
Opérateurs boléens : and, or |
|
> , < , >= , <= , == , != |
Opérateurs de comparaison : supérieur à, inférieur à, supérieur ou égal à, inférieur ou égal à, égal à et différent de retournent un booléen |
|
& |
Opérateur de concaténation des chaînes de caractères |
|
Opérateur ternaire¶
L'expression [condition] ? [résultat si vrai] : [résultat si faux]
s'appelle l'opérateur ternaire et permet de retourner différents résultats en fonction d'une condition.
Remarque
Une expression ternaire peut être lue comme "si [condition] alors [résultat si vrai] sinon [résultat si faux]".
Exemples :
'true' ? 'hello' : 'goodbye'
retourne'hello'
'false' ? 'hello' : 'goodbye'
retourne'good bye'
4 > 3 ? '4 is bigger' : '3 is bigger'
retourne'4 is bigger'
10 <= 9 ? '9 is bigger' : '10 is bigger'
retourne'10 is bigger'
La dernière partie de l'opérateur ternaire est optionnelle, ce qui veut dire que les expressions suivantes sont aussi valides :
'true' ? 'hello'
retourne'hello'
'false' ? 'hello'
retourne un résultat vide
Remarque
Certaines opérations peuvent échouer si elles concernent un champ dont la plateforme a mal deviné le type à la création du jeu de données, même si le type de champ a été modifié ultérieurement. Veuillez contacter l'équipe support Opendatasoft si cela se produit.
Fonctions¶
Les fonctions sont utilisées pour réaliser des opérations plus avancées dans une expression. Elles acceptent 0 ou plus paramètres et leur appliquent des transformations telles que :
gestion du texte ;
fonctions mathématiques ;
gestion de la date et de l'heure.
Gestion du texte¶
Fonctions booléennes
Fonction |
Description | Exemple |
---|---|---|
|
Vrai si le texte ne contient que des lettres |
|
|
Vrai si le texte ne contient que des chiffres |
|
|
Vrai si le texte contient des lettres ou des chiffres |
|
|
Vrai si le texte est un nombre décimal valide |
|
|
Vrai si le texte est un chiffre seul |
|
|
Vrai si le texte est en minuscules |
|
|
Vrai si le texte est en majuscules |
|
|
Vrai si le texte est vide |
|
|
Vrai si le texte (1er argument) contient, commence ou finit par le texte (2e argument) |
|
Fonctions de traitement
Fonction |
Description | Exemple |
---|---|---|
|
Retourne la longueur du texte |
|
|
Convertit le texte en minuscules ou en majuscules |
|
|
Met la première lettre du texte en majuscule ou la première lettre de chaque mot |
|
|
Justifie à gauche, à droite et au centre un texte (1er argument), jusqu'à atteindre le [nombre] de caractères à l'aide d'un autre texte (3e argument) |
|
|
Remplace un texte par sa représentation ASCII |
|
|
Extrait une sous-chaîne de texte, en commençant à l'index indiqué par le 2nd argument et d'une longueur indiquée par le 3e argument (optionnel). |
|
|
Retourne le nombre de fois où le 2nd argument apparaît dans le 1er argument |
|
|
Extrait une partie du texte (1er argument) en partant de la gauche, de la droite ou du milieu ; la taille de l'extrait est déterminé par le 2nd argument pour |
|
Fonctions mathématiques¶
Fonction |
Description | Exemple |
---|---|---|
|
Valeur absolue |
|
|
Racine carrée |
|
|
Fonctions arrondi à l'entier inférieur et supérieur |
|
|
Fonctions minimales et maximales |
|
|
Arrondit à l'entier le plus proche |
|
|
Génère un nombre aléatoire (entre 0 et [nombre]) |
|
|
Fonction puissance |
|
|
Fonctions exponentielles, logarithmiques et du logarithme en base 10 |
|
|
Convertit un angle de degrés en radians |
|
|
Convertit un angle de radians en degrés |
|
|
Cosinus, cosinus hyperbolique, sinus, sinus hyperbolique, tangente, tangente hyperbolique (en radians) |
|
|
Cosinus inverse, cosinus inverse hyperbolique, sinus inverse, cosinus inverse hyperbolique, tangente inverse, tangente inverse hyperbolique (en radians) |
|
Gestion de la date et de l'heure¶
Fonction |
Description | Exemple |
---|---|---|
year([datetime]) , quarter([datetime]) , month([datetime]) , week([datetime]) , day([datetime]) , dayofweek([datetime]) , hour([datetime]) , minute([datetime]) , second([datetime]) |
Extrait l'année, le trimestre, le mois, la semaine, la date, le jour de la semaine, les heures, les minutes et les secondes d'un datetime |
|
|
|
|
|
Convertit un indicateur temporel en datetime |
|
|
Convertit un trimestre en intervalle de dates |
|
|
Compte le nombre d'unités entre deux expressions datetime. |
|