Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru
Ini adalah tutorial 9 dari seri tutorial RevoScaleR tentang cara menggunakan fungsi RevoScaleR dengan SQL Server.
Dalam tutorial ini, Anda akan mempelajari tentang fungsi RevoScaleR untuk mengubah data pada berbagai tahap analisis Anda.
- Menggunakan rxDataStep untuk membuat dan mengubah subset data
- Gunakan rxImport untuk mengubah data dalam transit ke atau dari file XDF atau bingkai data dalam memori selama impor
Meskipun tidak khusus untuk pergerakan data, fungsi rxSummary, rxCube, rxLinMod, dan rxLogit semuanya mendukung transformasi data.
Menggunakan rxDataStep untuk mengubah variabel
Fungsi rxDataStep memproses data satu gugus sekaligus, membaca dari satu sumber data dan menulis ke sumber data lainnya. Anda dapat menentukan kolom yang akan diubah, transformasi yang akan dimuat, dan sebagainya.
Untuk membuat contoh ini menarik, mari kita gunakan fungsi dari paket R lain untuk mengubah data. Paket boot adalah salah satu paket "direkomendasikan", yang berarti boot disertakan dengan setiap distribusi R, tetapi tidak dimuat secara otomatis pada start-up. Oleh karena itu, paket harus sudah tersedia pada instans SQL Server yang dikonfigurasi untuk integrasi R.
Dari paket boot , gunakan fungsi inv.logit, yang menghitung inversi logit. Artinya, fungsi inv.logit mengonversi logit kembali ke probabilitas pada skala [0,1].
Tip
Cara lain untuk mendapatkan prediksi dalam skala ini adalah dengan mengatur parameter jenis untuk merespons dalam panggilan asli ke rxPredict.
Mulailah dengan membuat sumber data untuk menyimpan data yang ditujukan untuk tabel,
ccScoreOutput.sqlOutScoreDS <- RxSqlServerData( table = "ccScoreOutput", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )Tambahkan sumber data lain untuk menyimpan data untuk tabel
ccScoreOutput2.sqlOutScoreDS2 <- RxSqlServerData( table = "ccScoreOutput2", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )Dalam tabel baru, simpan semua variabel dari tabel sebelumnya
ccScoreOutput, ditambah variabel yang baru dibuat.Atur konteks komputasi ke instans SQL Server.
rxSetComputeContext(sqlCompute)Gunakan fungsi rxSqlServerTableExists untuk memeriksa apakah tabel
ccScoreOutput2output sudah ada; dan jika demikian, gunakan fungsi rxSqlServerDropTable untuk menghapus tabel.if (rxSqlServerTableExists("ccScoreOutput2")) rxSqlServerDropTable("ccScoreOutput2")Panggil fungsi rxDataStep, dan tentukan transformasi yang diinginkan dalam daftar.
rxDataStep(inData = sqlOutScoreDS, outFile = sqlOutScoreDS2, transforms = list(ccFraudProb = inv.logit(ccFraudLogitScore)), transformPackages = "boot", overwrite = TRUE)Saat Anda menentukan transformasi yang diterapkan ke setiap kolom, Anda juga dapat menentukan paket R tambahan yang diperlukan untuk melakukan transformasi. Untuk informasi selengkapnya tentang jenis transformasi yang dapat Anda lakukan, lihat Cara mengubah dan subset data menggunakan RevoScaleR.
Panggil rxGetVarInfo untuk melihat ringkasan variabel dalam himpunan data baru.
rxGetVarInfo(sqlOutScoreDS2)
Hasil
Var 1: ccFraudLogitScore, Type: numeric
Var 2: state, Type: character
Var 3: gender, Type: character
Var 4: cardholder, Type: character
Var 5: balance, Type: integer
Var 6: numTrans, Type: integer
Var 7: numIntlTrans, Type: integer
Var 8: creditLine, Type: integer
Var 9: ccFraudProb, Type: numeric
Skor logit asli dipertahankan, tetapi kolom baru, ccFraudProb, telah ditambahkan, di mana skor logit diwakili sebagai nilai antara 0 dan 1.
Perhatikan bahwa variabel faktor telah ditulis ke tabel ccScoreOutput2 sebagai data karakter. Untuk menggunakannya sebagai faktor dalam analisis berikutnya, gunakan parameter colInfo untuk menentukan tingkat.