Consulta y modificación de datos de SQL Server (tutorial de SQL Server y RevoScaleR)
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
Este es el tutorial 3 de la serie de tutoriales de RevoScaleR sobre el uso de las funciones de RevoScaleR con SQL Server.
En el tutorial anterior, cargó los datos en SQL Server. En este tutorial, puede explorar y modificar los datos mediante RevoScaleR:
- Devolver información básica sobre las variables
- Crear datos categóricos a partir de datos sin procesar
Los datos categóricos, o variables de factor, son útiles para las visualizaciones de datos exploratorias. Puede usarlos como entradas para los histogramas para hacerse una idea de qué aspecto tienen los datos de variables.
Consultar columnas y tipos
Use un IDE de R o RGui.exe para ejecutar el script de R.
En primer lugar, obtenga una lista de las columnas y sus tipos de datos. Use la función rxGetVarInfo y especifique el origen de datos que quiera analizar. Según la versión de RevoScaleR, también puede usar rxGetVarNames.
rxGetVarInfo(data = sqlFraudDS)
Resultados
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
Crear datos categóricos
Todas las variables se almacenan como enteros, pero algunas de las variables representan datos categóricos denominados variables de factor en R. Por ejemplo, la columna state contiene números que se usan como identificadores de los 50 estados, más el Distrito de Columbia. Para facilitar la comprensión de los datos, reemplace los números con una lista de abreviaturas de estado.
En este paso, creará un vector de cadena que contenga las abreviaturas y, después, asignará estos valores categóricos a los identificadores enteros originales. Después usará la nueva variable en el argumento colInfo para especificar que esta columna se trate como un factor. Cada vez que analice o mueva los datos, se usan las abreviaturas y la columna se trata como un factor.
Asignar la columna a las abreviaturas antes de usarla como un factor mejora realmente también el rendimiento. Para más información, vea R y optimización de datos.
Para empezar, cree una variable de R, stateAbb, y defina el vector de cadenas que se agregará, como sigue:
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")
Después, cree un objeto de información de columna, denominado ccColInfo, que especifique la asignación de los valores enteros existentes con los niveles de categorías (las abreviaturas de los estados).
Esta instrucción también crea variables de factor para el género y el titular de tarjeta.
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") )
Para crear el origen de datos de SQL Server que usa los datos actualizados, llame a la función RxSqlServerData como antes, pero agregue el argumento colInfo.
sqlFraudDS <- RxSqlServerData(connectionString = sqlConnString, table = sqlFraudTable, colInfo = ccColInfo, rowsPerRead = sqlRowsPerRead)
- Para el parámetro table , pase la variable sqlFraudTable, que contiene el origen de datos que ha creado anteriormente.
- Para el parámetro colInfo , pase la variable ccColInfo , que contiene los tipos de datos de columna y los niveles de factor.
Ahora puede usar la función rxGetVarInfo para ver las variables en el nuevo origen de datos.
rxGetVarInfo(data = sqlFraudDS)
Resultados
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
Ahora las tres variables que especificó (gender, statey cardholder) se tratan como factores.