extractcolumn est la commande de Smile permettant d'extraire des données numériques d'un texte.
- extractcolumn analyse du texte formaté avec des tab comme séparateurs de colonnes et des CR ou LF (fins de lignes) comme séparateurs de lignes. Le paramètre in peut être soit le texte à analyser lui-même, soit une référence à un fichier contenant un tel texte.
-
Pour spécifier les colonnes à extraire, utilisez l'une des trois formes suivantes : extractcolumn i (renverra la colonne i), extractcolumn i thru j (renverra la liste des colonnes i à j), ou extractcolumn {i1, i2, ..., iN} (renverra la liste des colonnes dont les index sont spécifiés dans la liste). Utilisez le paramètre skipping pour définir le nombre de lignes à ne pas prendre en compte au début du texte, par exemple les lignes correspondant à un en-tête.
set {x, y} to extractcolumn {1, 3} in s skipping 1
-
Par défaut extractcolumn renvoie chaque colonne sous forme d'un texte séparant les valeurs par des retours lignes. Pour obtenir les colonnes sous forme de listes de noms, spécifiez extractcolumn [...] as array of real.
array of real est le nom de la structure de données de Smile gérant les tableaux de nombres. array of real est équivalent à la structure de liste de nombres d'AppleScript tel que {1.0, 3.14, 1.414}.
set {x, y} to extractcolumn {1, 3} in s as array of real skipping 1
-
Pour extraire un sous-ensemble d'un tableau 2D en texte, spécifiez extractcolumn [...] as string. Cela renverra les colonnes comme un seul sous-ensemble, un texte dans lequel les valeurs sont séparées par des tab et des return.
set theTable to "Year Inc. %
2018 708 .3
2019 712 .6"
extractcolumn 2 thru 3 in theTable as string
-- Résultat :
"Inc. %
708 .3
712 .6"
-
Si vous demandez un index d'une colonne qui n'existe pas, extractcolumn renverra une colonne de texte vide si le paramètre in est du texte ou un fichier, ou il renverra un array of real rempli de missing value si la paramètre in est une matrix.
Les endroits ne correspondant pas à des valeurs valides (ceux ne contenant pas de texte correspondant à un nombre) sont également remplis avec des missing value.
|