Vraag de SQL Server-data op en pas deze aan (SQL Server en RevoScaleR-tutorial)

Van toepassing op: SQL Server 2016 (13.x) en latere versies

Dit is tutorial 3 van de RevoScaleR-tutorialserie over hoe je RevoScaleR-functies gebruikt met SQL Server.

In de vorige tutorial laadde je de data in SQL Server. In deze tutorial kun je data verkennen en aanpassen met RevoScaleR:

  • Geef basisinformatie over de variabelen terug
  • Creëer categorische data uit ruwe data

Categorische data, of factorvariabelen, zijn nuttig voor verkennende datavisualisaties. Je kunt ze gebruiken als invoer voor histogrammen om een idee te krijgen van hoe variabele data eruitziet.

Zoek naar kolommen en typen

Gebruik een R-IDE of RGui.exe om het R-script uit te voeren.

Eerst krijg je een lijst van de kolommen en hun datatypes. Je kunt de functie rxGetVarInfo gebruiken en de databron specificeren die je wilt analyseren. Afhankelijk van je versie van RevoScaleR kun je ook rxGetVarNames gebruiken.

rxGetVarInfo(data = sqlFraudDS)

Results

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

Creëer categorische gegevens

Alle variabelen worden opgeslagen als gehele getallen, maar sommige variabelen vertegenwoordigen categorische gegevens, zogenaamde factorvariabelen in R. Bijvoorbeeld, de kolomstaat bevat nummers die als identificatie worden gebruikt voor de 50 staten plus het District of Columbia. Om het beter te maken de gegevens te begrijpen, vervang je de nummers door een lijst met staatsafkortingen.

In deze stap maak je een stringvector met de afkortingen, en koppel je deze categorische waarden aan de oorspronkelijke gehele identificatoren. Vervolgens gebruik je de nieuwe variabele in het colInfo-argument om aan te geven dat deze kolom als factor wordt behandeld. Telkens wanneer je de data analyseert of verplaatst, worden de afkortingen gebruikt en wordt de kolom als factor behandeld.

Het toewijzen van de kolom aan afkortingen voordat je het als factor gebruikt, verbetert de prestaties juist ook. Voor meer informatie, zie R en data-optimalisatie.

  1. Begin met het maken van een R-variabele, stateAbb, en definieer de vector van strings om eraan toe te voegen, als volgt.

    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")
    
  2. Maak vervolgens een kolominformatieobject, genaamd ccColInfo, dat de mapping specificeert van de bestaande gehele waarden naar de categorische niveaus (de afkortingen voor toestanden).

    Deze verklaring creëert ook factorvariabelen voor geslacht en kaarthouder.

    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")
    )
    
  3. Om de SQL Server-databron te creëren die de bijgewerkte data gebruikt, roep je de RxSqlServerData-functie aan zoals voorheen, maar voeg je het colInfo-argument toe.

    sqlFraudDS <- RxSqlServerData(connectionString = sqlConnString,
    table = sqlFraudTable, colInfo = ccColInfo,
    rowsPerRead = sqlRowsPerRead)
    
    • Voor de tabelparameter geef je de variabele sqlFraudTable door, die de eerder aangemaakte databron bevat.
    • Voor de colInfo-parameter geef je de ccColInfo-variabele door, die de kolomdatatypes en factorniveaus bevat.
  4. Je kunt nu de functie rxGetVarInfo gebruiken om de variabelen in de nieuwe databron te bekijken.

    rxGetVarInfo(data = sqlFraudDS)
    

    Results

    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
    

Nu worden de drie variabelen die je hebt gespecificeerd (geslacht, staat en kaarthouder) als factoren behandeld.

Volgende stap