RCaller

Exécute un script R qui a la capacité d'accéder à des données d'entités à partir d'un cadre de données R temporaire. Les données d'entrée sont configurées sous forme de tables qui deviendront des cadres de données R. Les cadres de données R sont des tableaux similaires à ceux d'une base de données relationnelle qui prennent en charge des colonnes de différents types. Vous trouverez de plus amples informations sur les cadres de données R à l'adresse suivante :

https://www.r-tutor.com/r-introduction/data-frame

Ce Transformer nécessite que R et le paquetage sqldf soient installés sur le système pour pouvoir fonctionner. Voir Installer R dans la section Notes d'utilisation.

Il est possible de créer un nombre quelconque de cadres de données d'entrée, et un port d'entrée est attribué à chacun d'eux. Toutes les entités peuvent être acheminées vers ce port d'entrée, à condition qu'elles fournissent des valeurs pour chaque colonne définie pour le tableau. Le script R peut impliquer tous les cadres de données et toutes les colonnes définis en entrée. La sortie provient du cadre de données fmeOutput que l'utilisateur peut remplir avec les résultats de l'analyse statistique sur n'importe quel tableau d'entrée.

Un nombre quelconque de ports d'entrée peut être créé soit en se connectant au port Connecter une entrée soit en éditant les propriétés du Transformer et en ajoutant manuellement de nouvelles entrées, soit en important des définitions de port à partir d'entités existantes. Une fois importées, les définitions de la table ne changeront pas automatiquement en fonction des changements de leur source. Dans le cas où le nom d'un attribut est modifié en amont, le nom de la colonne correspondante de la table devra être ajusté manuellement dans les paramètres de la table. Les utilisateurs devront exposer manuellement les attributs de sortie qui seront importés à partir des noms de colonnes du cadre de données fmeOutput au moment de l'exécution.

Le succès de la traduction repose sur la fourniture par l'utilisateur d'un script R valide, respectant la syntaxe R appropriée. Vous trouverez ci-dessous un guide sur le langage R :

https://cran.r-project.org/doc/manuals/r-release/R-lang.html

Pour en savoir plus sur R et obtenir des idées sur les analyses statistiques possibles, les liens suivants sont intéressants :

https://www.r-bloggers.com/2015/12/how-to-learn-r-2/

https://www.r-tutor.com/r-introduction

Paramètres

Port en entrée

RCaller nécessite la définition d'une ou plusieurs tables, qui deviendront des ports d'entrée pour le Transformer. Le bouton Importer... offre un moyen rapide de remplir les définitions des tables d'entrée à partir des types d'entités sources dans le traitement.

Pour optimiser les performances, vous devriez définir le plus petit nombre de colonnes possible.

Notez que certains noms d'attributs et de tables FME peuvent ne pas être valides dans R comme noms de colonnes ou de cadres de données (notamment les noms d'attributs commençant par un trait de soulignement "_"). Pour éviter tout problème, ces noms seront convertis en noms R valides. Les noms ajustés seront affichés dans la section Data frames à gauche de l'éditeur de script.

R Script

RCaller a un seul port de sortie. Les attributs créés dans le script doivent être saisis par l'utilisateur dans le paramètre Attributs à exposer afin qu'ils apparaissent dans les Transformers suivants ou dans la vue tableau de FME Data Inspector. Les attributs définis sur l'entité sont déterminés par les colonnes définies dans le cadre de données fmeOutput au moment de l'exécution. Un éditeur utile est utilisé pour construire le script R, et fournit un accès pratique par glisser-déposer aux cadres de données, aux colonnes, et aux paramètres publiés et privés qui peuvent être utilisés dans le script.

Le nombre d'entités produites dépendra de la longueur de la plus grande colonne du cadre de données fmeOutput. De cette façon, le RCaller peut être utilisé pour sortir une seule valeur, une liste ou une matrice de valeurs.

Une note sur le contenu des tables : les data frames définies pour les ports d'entrée ont besoin des attributs des entités source sur lesquels les requêtes seront exécutées. Ils ne doivent pas - et ne devraient pas - contenir d'attributs supplémentaires.

Remarque sur les entités acheminées vers les ports d'entrée : Les entités acheminées vers les ports d'entrée doivent avoir des attributs qui correspondent au schéma défini pour le cadre de données du port d'entrée. Si ce n'est pas le cas, des valeurs nulles seront insérées à la place des attributs manquants pour les colonnes définies pour la table d'entrée. Un AttributeRenamer ou NullAttributeMapper en amont peut être utilisé pour s'assurer que les valeurs des attributs sont présentes pour les colonnes définies.

Lorsque le package R raster est chargé, les rasters sont pris en charge en entrée et en sortie. En entrée, la géométrie raster dans FME sera convertie en un objet RasterBrick dans R sous la colonne raster de cette table. Autrement dit, la colonne InputTableName$raster contiendra un objet RasterBrick pour chaque entité ayant une géométrie raster, et NA pour chaque entité n'en ayant pas. En sortie, les objets raster de la colonne fmeOutput$raster de R seront convertis en géométrie raster dans FME.

Exemples

Exemple de Script R pour calculer la moyenne et la médiane d'une liste de nombres

list<-c(1,2,2,2,2,3,3,3)

fmeOutput<-data.frame(mean=mean(list), median=median(list))

Notez que dans l'exemple ci-dessus, vous pouvez associer une liste à la valeur d'une colonne numérique de table (par exemple list<-myInput$testColumn)

La sortie du script sera une unique entité avec en sortie moyenne et median

Travailler à partir d'un jeu de données

Imaginons avoir, comme données sources, des données relatives à des arbres dont le diamètre des troncs dans l'attribut Diamètre.

Si le jeu de données est Arbres, lors de la connexion de ce jeu de données à RCaller, un port d'entrée Arbres sera créé.

Assurez-vous que l'attribut Diamètre apparaisse bien dans la table Entrée.

Dans la section R Script, spécifier fmeOutput<-data.frame(MeanDiameter=mean(Trees$Diameter)) permettra de calculer le diamètre moyen des arbres.

Spécifier MeanDiameter dans le paramètre Attributs à exposer permet d'exposer l'attribut Moyenne de sorte à l'utiliser dans la suite du traitement.

Notes

Installer R

Pour utiliser ce Transformer, vous devez installer à la fois R et le paquetage sqldf. L'utilisation d'objets raster nécessite en outre le paquetage raster.

Astuces

Vérifiez les types de vos tables d'entrée. Si vous souhaitez effectuer des calculs numériques sur certaines colonnes, assurez-vous qu'elles sont configurées comme des types numériques.

Le lien suivant décrit un problème particulier de Windows avec RCaller :

https://knowledge.safe.com/questions/107172/rcaller-no-package-caled-sqldf.html

Spécifier l'interpréteur R

FME tente de trouver un interpréteur R installé sur votre système, cependant, si R est installé dans un emplacement personnalisé ou si vous avez plusieurs interpréteurs, il peut être nécessaire de spécifier le chemin de l'interpréteur R dans le menu Outils > Options FME > Traitement > Interpréteur R.

Éditer les paramètres des Transformers

À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments de traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.

Définir les valeurs

Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres de traitement. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.

Options - Tables

Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.

FME Community

FME Community est l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.

Voir tous les résultats à propos de ce Transformer sur FME Community.