Dotazujte a upravujte data SQL Server (tutoriál pro SQL Server a RevoScaleR)

platí pro: SQL Server 2016 (13.x) a novější verze

Toto je třetí tutoriál ze série RevoScaleR o tom, jak používat funkce RevoScaleR se SQL Server.

V předchozím tutoriálu jste data nahráli do SQL Server. V tomto tutoriálu můžete prozkoumat a upravovat data pomocí RevoScaleR:

  • Vraťte základní informace o proměnných
  • Vytvářejte kategorická data ze surových dat

Kategorická data, neboli faktorové proměnné, jsou užitečná pro průzkumné vizualizace dat. Můžete je použít jako vstupy do histogramů, abyste získali představu o tom, jak vypadají proměnná data.

Dotaz na sloupce a datové typy

Použijte R IDE nebo RGui.exe pro spuštění R skriptu.

Nejprve si sežeň seznam sloupců a jejich datových typů. Můžete použít funkci rxGetVarInfo a zadat zdroj dat, který chcete analyzovat. Podle vaší verze RevoScaleR můžete také použít rxGetVarNames.

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

Vytvářejte kategorická data

Všechny proměnné jsou uloženy jako celá čísla, ale některé proměnné představují kategorická data, nazývaná faktorové proměnné v R. Například sloupec stav obsahuje čísla používaná jako identifikátory pro 50 států plus District of Columbia. Aby bylo snazší porozumění datům, nahradíte čísla seznamem zkratek států.

V tomto kroku vytvoříte řetězcový vektor obsahující zkratky a poté tyto kategoriové hodnoty namapujete na původní celočíselné identifikátory. Pak použijete novou proměnnou v argumentu colInfo , abyste určili, že tento sloupec má být zpracován jako faktor. Kdykoli data analyzujete nebo přesouváte, používají se zkratky a sloupec se zpracovává jako faktor.

Převedení sloupce na zkratky před jeho použitím jako faktoru ve skutečnosti také zlepšuje výkon. Pro více informací viz R a optimalizace dat.

  1. Začněte vytvořením proměnné R stateAbb a definováním vektoru řetězců, které se k ní přidají, následovně.

    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. Dále vytvořte sloupcový informační objekt nazvaný ccColInfo, který specifikuje mapování existujících celočíselných hodnot na kategorické úrovně (zkratky pro stavy).

    Toto tvrzení také vytváří faktorové proměnné pro pohlaví a držitele karty.

    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. Pro vytvoření zdroje dat SQL Server, který používá aktualizovaná data, zavolejte funkci RxSqlServerData jako dříve, ale přidejte argument colInfo.

    sqlFraudDS <- RxSqlServerData(connectionString = sqlConnString,
    table = sqlFraudTable, colInfo = ccColInfo,
    rowsPerRead = sqlRowsPerRead)
    
    • Pro parametr tabulky vložte proměnnou sqlFraudTable, která obsahuje zdroj dat, který jste dříve vytvořili.
    • Pro parametr colInfo vložte proměnnou ccColInfo , která obsahuje typy datových sloupců a úrovně faktorů.
  4. Nyní můžete použít funkci rxGetVarInfo k zobrazení proměnných v novém datovém zdroji.

    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
    

Nyní se tři proměnné, které jste uvedli (pohlaví, stát a držitel karty), považují za faktory.

Další krok