Partager via


Interroger et modifier des données SQL Server (tutoriel SQL Server et RevoScaleR)

S’applique à : SQL Server 2016 (13.x) et versions ultérieures

Il s’agit du tutoriel 3 de la série de tutoriels RevoScaleR qui traite de l’utilisation des fonctions RevoScaleR avec SQL Server.

Dans le tutoriel précédent, vous avez chargé les données dans SQL Server. Dans le présent tutoriel, vous pouvez explorer et modifier des données à l’aide de RevoScaleR :

  • Renvoyer des informations de base sur les variables
  • Créer des données de catégorie à partir de données brutes

Les données de catégorie, ou les variables de facteur, sont utiles pour les visualisations de données exploratoires. Vous pouvez les utiliser en tant qu’entrées dans des histogrammes pour avoir une idée de l’apparence des données de variables.

Requête pour les colonnes et les types

Utilisez un environnement de développement intégré R ou RGui. exe pour exécuter le script R.

Obtenez d’abord la liste des colonnes et leurs types de données. Vous pouvez utiliser la fonction rxGetVarInfo et spécifier la source de données à analyser. Selon votre version de RevoScaleR, vous pouvez également utiliser rxGetVarNames.

rxGetVarInfo(data = sqlFraudDS)

Résultats

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

Créer des données de catégorie

Toutes les variables sont stockées sous forme d’entiers, mais certaines variables représentent des données de catégorie appelées variables de facteur dans R. Par exemple, la colonne state contient des nombres qui représentent des identificateurs pour les 50 états, plus le District de Columbia. Pour mieux comprendre les données, vous pouvez remplacer les numéros par une liste d’abréviations des noms des états.

Dans cette étape, vous créez un vecteur de chaîne qui contient les abréviations, puis mappez ces valeurs de catégorie aux identificateurs entiers d’origine. Vous allez utiliser la nouvelle variable dans l’argument colInfo pour spécifier que cette colonne doit être gérée comme un facteur. Chaque fois que vous analysez ou déplacez les données, les abréviations sont utilisées et la colonne est traitée en tant que facteur.

Le fait de mapper la colonne vers les abréviations avant de l’utiliser comme facteur améliore également les performances. Pour plus d’informations, consultez R et optimisation des données.

  1. Commencez par créer la variable R stateAbbet par définir le vecteur des chaînes que vous lui ajoutez, comme suit :

    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. Ensuite, créez un objet d’informations de colonne, nommé ccColInfo, qui spécifie le mappage des valeurs entières existantes aux niveaux des catégories (les abréviations du nom des états).

    Cette instruction crée également des variables de facteur pour gender et 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")
    )
    
  3. Pour créer la source de données SQL Server qui utilise les données mises à jour, appelez la fonction RxSqlServerData comme précédemment, mais ajoutez l’argument colInfo.

    sqlFraudDS <- RxSqlServerData(connectionString = sqlConnString,
    table = sqlFraudTable, colInfo = ccColInfo,
    rowsPerRead = sqlRowsPerRead)
    
    • Pour le paramètre table , passez la variable sqlFraudTablequi contient la source de données que vous avez créée.
    • Pour le paramètre colInfo , passez la variable ccColInfo , qui contient les types de données de colonne et les niveaux de facteur.
  4. Vous pouvez maintenant utiliser la fonction rxGetVarInfo pour demander des informations sur les variables dans la nouvelle source de données.

    rxGetVarInfo(data = sqlFraudDS)
    

    Résultats

    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
    

Les trois variables que vous avez spécifiées (gender, stateet cardholder) sont maintenant traitées comme des facteurs.

Étapes suivantes