Modificare ed eseguire query sui dati di SQL Server (esercitazione su SQL Server e RevoScaleR)
Si applica a: SQL Server 2016 (13.x) e versioni successive
Questa è l'esercitazione 3 della serie di esercitazioni per RevoScaleR dedicate all'uso delle funzioni di RevoScaleR con SQL Server.
Nell'esercitazione precedente sono stati caricati i dati in SQL Server. In questa esercitazione è possibile esplorare e modificare i dati usando RevoScaleR:
- Restituire informazioni di base sulle variabili
- Creare dati categorici da dati non elaborati
I dati categorici, o variabili di fattore, sono particolarmente utili per le visualizzazioni esplorative dei dati. È possibile usarli come input di istogrammi per avere un'idea dell'aspetto dei dati variabili.
Eseguire query per colonne e tipi
Usare un IDE R o RGui.exe per eseguire lo script R.
Per prima cosa ottenere un elenco delle colonne e dei relativi tipi di dati. È possibile usare la funzione rxGetVarInfo e specificare l'origine dati da analizzare. A seconda della versione di RevoScaleR, è possibile usare anche rxGetVarNames.
rxGetVarInfo(data = sqlFraudDS)
Risultati
Var 1: custID, Type: integer
Var 2: gender, Type: integer
Var 3: state, Type: integer
Var 4: cardholder, Type: integer
Var 5: balance, Type: integer
Var 6: numTrans, Type: integer
Var 7: numIntlTrans, Type: integer
Var 8: creditLine, Type: integer
Var 9: fraudRisk, Type: integer
Creare dati categorici
Tutte le variabili vengono archiviate come valori interi, ma alcune variabili rappresentano dati relativi alle categorie denominati variabili di fattore in R. Ad esempio, la colonna stato contiene numeri che rappresentano gli identificatori di 50 stati, più District of Columbia. Per facilitare la comprensione dei dati, sostituire i numeri con un elenco di codici di stato.
In questo passaggio si creerà un vettore di stringhe contenente le abbreviazioni e si eseguirà il mapping dei valori di categoria agli identificatori interi originali. Si userà quindi la nuova variabile nell'argomento colInfo per specificare che la colonna deve essere gestita come fattore. Ogni volta che si analizzano o si spostano i dati, vengono usate le abbreviazioni e la colonna viene gestita come fattore.
Il mapping della colonna alle abbreviazioni prima di usarla come fattore consente di migliorare anche le prestazioni. Per altre informazioni, vedere R e ottimizzazione dei dati.
Iniziare creando la variabile R stateAbb e definendo il vettore di stringhe da aggiungere alla variabile come segue.
stateAbb <- c("AK", "AL", "AR", "AZ", "CA", "CO", "CT", "DC", "DE", "FL", "GA", "HI","IA", "ID", "IL", "IN", "KS", "KY", "LA", "MA", "MD", "ME", "MI", "MN", "MO", "MS", "MT", "NB", "NC", "ND", "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA", "RI","SC", "SD", "TN", "TX", "UT", "VA", "VT", "WA", "WI", "WV", "WY")
Quindi, creare un oggetto informazioni di colonna denominato ccColInfoche specifichi il mapping dei valori interi esistenti ai livelli di categoria, ovvero le abbreviazioni per gli stati.
Questa istruzione crea anche le variabili di fattore per gender e cardholder.
ccColInfo <- list( gender = list( type = "factor", levels = c("1", "2"), newLevels = c("Male", "Female") ), cardholder = list( type = "factor", levels = c("1", "2"), newLevels = c("Principal", "Secondary") ), state = list( type = "factor", levels = as.character(1:51), newLevels = stateAbb ), balance = list(type = "numeric") )
Per creare l'origine dati SQL Server che usa i dati aggiornati, chiamare la funzione RxSqlServerData come in precedenza, ma aggiungere l'argomento colInfo.
sqlFraudDS <- RxSqlServerData(connectionString = sqlConnString, table = sqlFraudTable, colInfo = ccColInfo, rowsPerRead = sqlRowsPerRead)
- Per il parametro table , passare la variabile sqlFraudTableche contiene l'origine dati creata in precedenza.
- Per il parametro colInfo , passare la variabile ccColInfo che contiene i tipi di dati di colonna e i livelli di fattore.
È ora possibile usare la funzione rxGetVarInfo per visualizzare le variabili nella nuova origine dati.
rxGetVarInfo(data = sqlFraudDS)
Risultati
Var 1: custID, Type: integer Var 2: gender 2 factor levels: Male Female Var 3: state 51 factor levels: AK AL AR AZ CA ... VT WA WI WV WY Var 4: cardholder 2 factor levels: Principal Secondary Var 5: balance, Type: integer Var 6: numTrans, Type: integer Var 7: numIntlTrans, Type: integer Var 8: creditLine, Type: integer Var 9: fraudRisk, Type: integer
A questo punto le tre variabili specificate (gender, statee cardholder) vengono trattate come fattori.