Cara menggunakan .SD dalam pakej data R.T.

Bagi sebilangan pengguna data.table, "dot-SD" agak misteri. Tetapi pencipta meja data, Matt Dowle memberitahu saya bahawa sebenarnya agak mudah: Anggap saja ia sebagai simbol yang mewakili "setiap kumpulan." Mari kita teliti beberapa contoh.

Saya mempunyai satu set data perjalanan berbasikal harian dari sistem perkongsian basikal di kawasan Boston. Sekiranya anda ingin mengikuti, anda boleh memuat turun fail CSV dari pautan di bahagian bawah artikel ini.

Saya akan memuatkan data.table dan mengimport fail CSV saya menggunakan fread()fungsi data.table . Dalam kod di bawah ini, saya menyimpan data ke dalam jadual data yang disebut mydt.

perpustakaan (data.tabel)

mydt <- fread ("daily_cycling_trips_by_usertype.csv")

Seterusnya, saya cadangkan mencetak enam baris pertama head(mydt)untuk melihat seperti apa data. Anda akan melihat bahawa data mempunyai lajur untuk tarikh, jenis pengguna (pelanggan atau pelanggan perjalanan tunggal), jumlah perjalanan, tahun, dan tarikh bermula bulan untuk membantu jumlah mengikut bulan.

Contoh pertama yang dicadangkan Matt: Cetak beberapa baris pertama jadual data yang dikelompokkan mengikut jenis pengguna . (Kami menapis untuk 12 baris pertama hanya untuk mempermudah hasilnya). 

mydt [1:12, cetak (.SD), oleh = jenis pengguna]

print()berulang kali pada setiap kumpulan dan dicetak dua kali berasingan, satu untuk setiap jenis pengguna. Masalahnya, saya tidak tahu yang merupakan kumpulan pengguna pelanggan dan yang mana kumpulan pengguna pelanggan. Lajur "oleh" tidak dicetak. Nasib baik, Matt menunjukkan sedikit muslihat untuk saya.

Jika anda biasa dengan mydt[i, j, by]sintaks data.table, terdapat tiga bahagian untuk notasi kurungan selepas nama jadual data: i, j, dan by. iadalah untuk menapis baris, jadalah untuk apa yang anda mahu lakukan, dan bybagaimana anda mahu mengumpulkan data anda.

Sebagai contoh: 

mydt [1:12, {print (.SD)}, oleh = jenis pengguna]

Dalam barisan kod di atas, saya hanya meletakkan pendakap keriting di jbahagian itu. Itu akan membolehkan saya menambahkan banyak ungkapan R di dalam jargumen.  Sekarang masih sama seperti sebelumnya: tiada nama jenis pengguna.

Tetapi di dalam bidang ini seterusnya kod, lihat kenyataan R yang saya tambah (baik, Matt memberitahu saya untuk menambah): print(.BY).

mydt [1:12, {cetak (.BY); cetak (.SD)}, oleh = jenis pengguna]

.BYadalah simbol data.table khas yang menyimpan nilai by- lajur atau lajur apa yang saya kumpulkan.

Sekiranya anda menjalankan kod ini, anda akan mempunyai nama setiap pemboleh ubah pengelompokan bersama dengan cetakan.

Sharon Machlis,

Jadi itu adalah contoh yang sangat asas. Saya rasa anda mungkin ingin melakukan sesuatu yang lebih menarik .SDdaripada mencetak. Seterusnya mari kita melihat ringkasan data mengikut kumpulan, mengira hari yang paling banyak perjalanan setiap bulan tahun ini.

Garis kod ini mempunyai semuanya:

mydt [Tahun == "2019", .SD [which.max (Perjalanan)], oleh = Bulan Bermula]

The ihujah pertama dalam kurungan filter bagi apa-apa baris di mana setahun 2019. jhujah adalah bahagian yang menarik untuk .SD. Fikirkan .SDsebagai merujuk kepada setiap kumpulan data anda. Atau sebagai Matt berkata, "Anda lakukan joleh by. Seperti forgelung. "

Bagaimana jika anda ingin melihat maksimum untuk setiap bulan dan jenis pengguna? Cukup tambahkan lajur lain pada byargumen (ketiga):

mydt [Tahun == "2019", .SD [which.max (Perjalanan)],

oleh =. (Permulaan Bulan, jenis pengguna)]

Terdapat beberapa cara untuk menyatakan pengelompokan dengan lebih daripada satu lajur dalam data.tabel. Salah satu caranya adalah dengan titik sebelum nama lajur yang tidak disebut, seperti di atas. Yang lain adalah menggunakan listbukan titik, sebagai contoh: 

mydt [Tahun == "2019", .SD [which.max (Perjalanan)],

mengikut = senarai (Permulaan Bulan, jenis pengguna)]

Anda juga boleh menggunakan vektor asas R konvensional dengan tanda petik di setiap nama lajur. 

mydt [Tahun == "2019", .SD [which.max (Perjalanan)],

oleh = c ("MonthStarting", "usertype")]

Untuk lebih banyak petua R, buka halaman video "Lakukan Lebih Banyak Dengan R" atau lihat senarai main YouTube "Lakukan Lebih Banyak Dengan R".

muat turun Contoh fail Data Perjalanan Basikal CSV untuk menyertakan artikel dan video "Cara menggunakan .SD dalam pakej R data.table" saya Sharon Machlis

Semoga berjumpa dengan episod seterusnya!