L’ R Engine include la possibilità di generare input e output aggiuntivi oltre a quelli definiti tramite le variabili riservate InputDataSet e OutputDataSet. Queste funzionalità sono rese disponibili tramite le funzioni GetIrionData e SetIrionData incluse nel package RIrion. Il package può essere richiamato in un qualsiasi R Engine tramite il comando library(RIrion) e funziona esclusivamente impostando la modalità IsolData V2.
La funzione GetIrionData consente di utilizzare tabelle di IrionEDM all’interno del codice R sotto forma di data.frame. La sintassi di utilizzo è la seguente: <my_var> <- GetIrionData(“<entity_name>”).
<my_var> è una variabile R a discrezione dell’utente, mentre <entity_name> è il nome di un oggetto esistente Irion che produce una tabella (ad esempio un Query Engine). Dopo l’esecuzione del comando, la variabile <my_var> contiene un data.frame utilizzabile in qualsiasi parte del codice R definito nell’engine.
ESEMPIO: Nell’esempio qui riportato, si intende effettuare due operazioni: la modellizzazione di un modello matematico di predizione di tipo Random Forest ed il suo effettivo utilizzo su un set di dati, il test set. La funzione GetIrionData viene richiamata per la lettura del test set da un oggetto di tipo Databox Link in una variabile di tipo data.frame. Tale variabile verrà poi utilizzata per lo scoring del modello Random Forest sui dati del test set:
library(RIrion)
randomForestObj <- rxDForest(is_bad ~ revol_util + int_rate + mths_since_last_record + annual_inc_joint + dti_joint + total_rec_prncp + all_util, InputDataSet) m <- data.frame(model = as.raw(serialize(randomForestObj, connection=NULL)))
testSet <- GetIrionData("\\Scoring\\ReadTestLoanData")
OutputDataSet <- rxPredict(randomForestObj, data = testSet, extraVarsToWrite = c("is_bad","id")) |
La funzione SetIrionData consente di assegnare un data.frame R ad una tabella Irion utilizzabile all’esterno dell'R Engine. La tabella di destinazione deve essere definita nella lista degli ExtendedOutput.
La sintassi di utilizzo è la seguente: SetIrionData(“<extended_output_name>”, <R_data_frame>)
<extended_output_name> è il nome di uno degli output definiti nella property ExtendedOutputs, mentre <R_data_frame> è un data.frame R.
Tutti gli ExtendedOutput generati tramite la funzione SetIrionData, possono essere richiamati all’interno di un qualsiasi oggetto Irion che possiede un query editor attraverso la seguente sintassi: NomeDelREngine | NomeDelExtendedOutput
ESEMPIO: Nell’esempio qui riportato, si utilizza un modello matematico precedentemente creato ed allenato (leggendolo da iteratore nella variabile “model”) per effettuare delle predizioni a partire da un test set passato tramite InputDataSet. L’OutputDataSet conterrà gli esiti della predizione, mentre la funzione SetIrionData verrà utilizzata per fornire in output un “summary” aggiuntivo relativo all’OutputDataSet. Affinchè lo script possa funzionare, è necessario censire prima un ExtendedOutput contenente tre variabili di tipo varchar (gli esiti dell’istruzione R “summary”).
library("RIrion")
rfModel <- unserialize(as.raw(model)); preds <- rxPredict(rfModel, data = InputDataSet, extraVarsToWrite = c("is_bad","id")) SetIrionData("PredsSummary",data.frame(summary(preds))) OutputDataSet <- data.frame(preds) |