Memulai dengan Data dalam R

Bagan alur ModernDive - ke Bagian I!

Memulai dengan Data dalam R

Sebelum kita dapat mulai mengeksplorasi data dalam R, ada beberapa konsep kunci yang perlu dipahami terlebih dahulu:
  1. Apa itu R dan RStudio?
  2. Bagaimana saya kode dalam R?
  3. Apa itu paket R?
Kami akan memperkenalkan konsep-konsep ini di Bagian 1.1mendatang - 1.3 . Jika Anda sudah terbiasa dengan konsep-konsep ini, jangan ragu untuk beralih ke Bagian 1.4 tempat kami akan memperkenalkan dataset pertama kami: semua penerbangan domestik berangkat dari salah satu dari tiga bandara utama New York City (NYC) pada 2013. Ini adalah dataset yang kami akan mengeksplorasi secara mendalam untuk sebagian besar sisa buku ini.

1.1 Apa itu R dan RStudio?

Sepanjang buku ini, kami akan menganggap bahwa Anda menggunakan R via RStudio. Pertama kali pengguna sering membingungkan keduanya. Paling sederhana, R seperti mesin mobil sementara RStudio seperti dashboard mobil seperti yang diilustrasikan pada Gambar 1.1 .
Analogi perbedaan antara R dan RStudio.
GAMBAR 1.1: Analogi perbedaan antara R dan RStudio.
Lebih tepatnya, R adalah bahasa pemrograman yang menjalankan komputasi, sementara RStudio adalah lingkungan pengembangan terintegrasi (IDE) yang menyediakan antarmuka dengan menambahkan banyak fitur dan alat yang praktis. Jadi sama seperti cara memiliki akses ke speedometer, kaca spion, dan sistem navigasi membuat mengemudi lebih mudah, menggunakan antarmuka RStudio membuat menggunakan R juga lebih mudah.

1.1.1 Menginstal R dan RStudio

Catatan tentang RStudio Server atau RStudio Cloud : Jika instruktur Anda memberi Anda tautan dan akses ke RStudio Server atau RStudio Cloud, maka Anda dapat melewati bagian ini. Kami merekomendasikan setelah beberapa bulan bekerja di RStudio Server / Cloud agar Anda kembali ke instruksi ini untuk menginstal perangkat lunak ini di komputer Anda sendiri.
Pertama-tama Anda harus mengunduh dan menginstal R dan RStudio (versi Desktop) pada komputer Anda. Penting bahwa Anda menginstal R terlebih dahulu dan kemudian menginstal RStudio.
  1. Anda harus melakukan ini terlebih dahulu: Unduh dan instal R dengan membuka https://cloud.r-project.org/ .
    • Jika Anda adalah pengguna Windows: Klik "Unduh R untuk Windows", lalu klik "pangkalan", lalu klik tautan Unduh.
    • Jika Anda pengguna macOS: Klik pada "Unduh R untuk (Mac) OS X", lalu di bawah "Rilis terbaru:" klik pada RX.XXpkg, di mana RX.XX adalah nomor versi.Misalnya, versi terbaru R pada 25 November 2019 adalah R-3.6.1.
    • Jika Anda adalah pengguna Linux: Klik pada "Unduh R untuk Linux" dan pilih distribusi Anda untuk informasi lebih lanjut tentang menginstal R untuk pengaturan Anda.
  2. Anda harus melakukan ini kedua: Unduh dan instal RStudio di https://www.rstudio.com/products/rstudio/download/ .
    • Gulir ke bawah ke "Pemasang untuk Platform yang Didukung" di dekat bagian bawah halaman.
    • Klik tautan unduhan yang sesuai dengan sistem operasi komputer Anda.

1.1.2 Menggunakan R via RStudio

Ingat analogi mobil kami dari sebelumnya. Seperti halnya kita tidak mengendarai mobil dengan berinteraksi langsung dengan mesin, melainkan dengan berinteraksi dengan elemen-elemen di dasbor mobil, kita tidak akan menggunakan R secara langsung tetapi kita akan menggunakan antarmuka RStudio. Setelah Anda menginstal R dan RStudio di komputer Anda, Anda akan memiliki dua program baru (juga disebut aplikasi ) yang dapat Anda buka.Kami akan selalu bekerja di RStudio dan tidak di aplikasi R.Gambar 1.2 menunjukkan ikon apa yang harus Anda klik pada komputer Anda.
Ikon R versus RStudio di komputer Anda.
GAMBAR 1.2: Ikon R versus RStudio di komputer Anda.
Setelah Anda membuka RStudio, Anda akan melihat sesuatu yang mirip dengan Gambar 1.3 . (Perhatikan bahwa mungkin ada sedikit perbedaan jika antarmuka RStudio diperbarui setelah 2019 agar tidak seperti ini secara default.)
Antarmuka RStudio ke R.
GAMBAR 1.3: antarmuka RStudio ke R.
Perhatikan tiga panel yang merupakan tiga panel yang membagi layar: panel konsol , panel file , dan panel lingkungan . Selama bab ini, Anda akan mengetahui tujuan dari masing-masing panel ini.

1.2 Bagaimana saya kode dalam R?

Sekarang Anda sudah siap dengan R dan RStudio, Anda mungkin bertanya pada diri sendiri, “Oke. Sekarang bagaimana saya menggunakan R? ". Hal pertama yang perlu diperhatikan adalah bahwa tidak seperti program perangkat lunak statistik lainnya seperti Excel, SPSS, atau Minitab yang menyediakan antarmuka titik-dan-klik , R adalah bahasa yang diartikan . Ini berarti Anda harus mengetik perintah yang ditulis dalam kode R. Dengan kata lain, Anda harus membuat kode / program dalam R. Perhatikan bahwa kami akan menggunakan istilah "coding" dan "programming" secara bergantian dalam buku ini.
Meskipun tidak perlu menjadi programmer / programmer komputer berpengalaman untuk menggunakan R, masih ada satu set konsep pemrograman dasar yang perlu dipahami pengguna R baru. Akibatnya, sementara buku ini bukan buku tentang pemrograman, Anda masih akan belajar cukup banyak konsep pemrograman dasar yang diperlukan untuk mengeksplorasi dan menganalisis data secara efektif.

1.2.1 Konsep dan terminologi pemrograman dasar

Kami sekarang memperkenalkan beberapa konsep dan terminologi pemrograman dasar. Alih-alih meminta Anda untuk menghafal semua konsep dan terminologi ini sekarang, kami akan membimbing Anda sehingga Anda akan "belajar sambil melakukan." Untuk membantu Anda belajar, kami akan selalu menggunakan font lain untuk membedakan teks biasa dari computer_code . Cara terbaik untuk menguasai topik ini adalah, menurut pendapat kami, melalui latihan yang disengaja dengan R dan banyak pengulangan.
  • Dasar-dasar:
    • Panel konsol : tempat Anda memasukkan perintah.
    • Running code : tindakan memberi tahu R untuk melakukan suatu tindakan dengan memberikan perintah di konsol.
    • Objek : tempat nilai disimpan dalam R. Kami akan menunjukkan kepada Anda cara menetapkan nilai ke objek dan cara menampilkan konten objek.
    • Jenis data : bilangan bulat, ganda / angka, logika, dan karakter. Bilangan bulat adalah nilai-nilai seperti -1, 0, 2, 4092. Doubles atau numerik adalah seperangkat nilai yang lebih besar yang mengandung bilangan bulat tetapi juga pecahan dan nilai desimal seperti -24.932 dan 0.8. Logikanya TRUE atau FALSE sementara karakternya berupa teks seperti "kubis", "Hamilton", "The Wire adalah acara TV terhebat yang pernah ada", dan "Ramen ini enak." Perhatikan bahwa karakter sering dilambangkan dengan tanda kutip di sekitarnya.
  • Vektor : serangkaian nilai. Ini dibuat menggunakan fungsi c() , di mana c() berarti "menggabungkan" atau "menyatukan." Sebagai contoh, c(6, 11, 13, 31, 90, 92) menciptakan enam elemen seri nilai integer positif.
  • Faktor : data kategorikal biasanya direpresentasikan dalam R sebagai faktor. Data kategorikal juga dapat direpresentasikan sebagai string . Kami akan mempelajari perbedaan ini saat kami terus membaca buku ini.
  • Bingkai data : spreadsheet persegi panjang. Mereka adalah representasi dari dataset di R di mana baris sesuai dengan pengamatan dan kolom sesuai dengan variabel yang menggambarkan pengamatan. Kami akan membahas frame data nanti di Bagian 1.4 .
  • Persyaratan :
    • Menguji kesetaraan dalam R menggunakan ==(dan tidak = , yang biasanya digunakan untuk penugasan). Misalnya, 2 + 1 == 3 membandingkan 2 + 1 hingga 3 dan kode R yang benar, sedangkan 2 + 1 = 3 akan mengembalikan kesalahan.
    • Aljabar Boolean: Pernyataan TRUE/FALSE dan operator matematika seperti < (kurang dari), <=(kurang dari atau sama), dan != (Tidak sama dengan). Misalnya, 4 + 2 >= 3 akan mengembalikan TRUE , tetapi 3 + 5 <= 1 akan mengembalikan FALSE .
    • Operator logis: & mewakili “dan” serta | mewakili “atau.” Misalnya, (2 + 1 == 3) & (2 + 1 == 4)mengembalikan FALSE karena kedua klausa tersebut tidak TRUE (hanya klausa pertama yang TRUE ). Di sisi lain, (2 + 1 == 3) | (2 + 1 == 4)(2 + 1 == 3) | (2 + 1 == 4) mengembalikan TRUEkarena setidaknya salah satu dari dua klausa TRUE.
  • Fungsi , juga disebut perintah : Fungsi melakukan tugas dalam R. Mereka mengambil input yang disebut argumendan mengembalikan output. Anda bisa secara manual menentukan argumen fungsi atau menggunakan nilai default fungsi.
    • Sebagai contoh, fungsi seq() di R menghasilkan urutan angka. Jika Anda hanya menjalankan seq()itu akan mengembalikan nilai 1. Itu tampaknya tidak terlalu berguna! Ini karena argumen default ditetapkan sebagai seq(from = 1, to = 1) . Jadi, jika Anda tidak memberikan nilai yang berbeda untuk from dan to mengubah perilaku ini, R hanya mengasumsikan semua yang Anda inginkan adalah angka 1. Anda dapat mengubah nilai argumen dengan memperbarui nilai setelah tanda = . Jika kita mencoba seq(from = 2, to = 5) kita mendapatkan hasil 2 3 4 5 yang mungkin kita harapkan.
    • Kami akan bekerja dengan banyak fungsi di seluruh buku ini dan Anda akan mendapatkan banyak latihan dalam memahami perilaku mereka. Untuk lebih membantu Anda memahami ketika suatu fungsi disebutkan dalam buku, kami juga akan menyertakan () setelah mereka seperti yang kami lakukan dengan seq() atas.
Daftar ini sama sekali bukan daftar lengkap dari semua konsep pemrograman dan terminologi yang diperlukan untuk menjadi pengguna R cerdas; daftar seperti itu akan sangat besar sehingga tidak akan sangat berguna, terutama untuk pemula. Sebaliknya, kami merasa ini adalah daftar konsep dan terminologi pemrograman yang layak yang perlu Anda ketahui sebelum memulai. Kami merasa bahwa Anda dapat mempelajari sisanya saat Anda pergi. Ingatlah bahwa penguasaan Anda terhadap semua konsep dan terminologi ini akan terbangun saat Anda terus berlatih.

1.2.2 Kesalahan, peringatan, dan pesan

Satu hal yang mengintimidasi pengguna R dan RStudio baru adalah bagaimana melaporkan kesalahan , peringatan , dan pesan . R melaporkan kesalahan, peringatan, dan pesan dalam font merah mencolok, yang membuatnya tampak seperti memarahi Anda. Namun, melihat teks merah di konsol tidak selalu buruk.
R akan menampilkan teks merah di panel konsol dalam tiga situasi berbeda:
  • Kesalahan : Ketika teks merah adalah kesalahan yang sah, itu akan diawali dengan "Kesalahan dalam ..." dan akan mencoba menjelaskan apa yang salah. Umumnya ketika ada kesalahan, kode tidak akan berjalan.Misalnya, kita akan melihat di Subbagian 1.3.3 jika Anda melihat Error in ggplot(...) : could not find function "ggplot" , itu berarti bahwa fungsi ggplot() tidak dapat diakses karena paket yang berisi fungsi tersebut ( ggplot2 ) tidak dimuat dengan library(ggplot2) .Dengan demikian Anda tidak dapat menggunakan fungsi ggplot() tanpa paket ggplot2 dimuat terlebih dahulu.
  • Peringatan : Ketika teks merah adalah peringatan, itu akan diawali dengan "Peringatan:" dan R akan mencoba menjelaskan mengapa ada peringatan. Umumnya kode Anda masih akan berfungsi, tetapi dengan beberapa peringatan. Misalnya, Anda akan melihat di Bab 2 jika Anda membuat scatterplot berdasarkan dataset di mana dua baris data memiliki entri yang hilang yang akan diperlukan untuk membuat titik di scatterplot, Anda akan melihat peringatan ini: Warning: Removed 2 rows containing missing values (geom_point) . R masih akan menghasilkan scatterplot dengan semua nilai yang tidak hilang yang tersisa, tetapi memperingatkan Anda bahwa dua poin tidak ada.
  • Pesan : Ketika teks merah tidak dimulai dengan "Kesalahan" atau "Peringatan", itu hanya pesan ramah .Anda akan melihat pesan-pesan ini ketika Anda memuat paket R di Subbagian 1.3.2 mendatang atau ketika Anda membaca data yang disimpan dalam file spreadsheet dengan fungsi read_csv() seperti yang akan Anda lihat di Bab 4 . Ini adalah pesan diagnostik yang membantu dan mereka tidak menghentikan kode Anda dari bekerja.Selain itu, Anda akan melihat pesan-pesan ini ketika Anda menginstal paket juga menggunakan install.packages() seperti yang dibahas dalam Subbagian 1.3.1 .
Ingat, ketika Anda melihat teks merah di konsol, jangan panik. Itu tidak selalu berarti ada yang salah. Agak:
  • Jika teks dimulai dengan "Kesalahan", cari tahu apa penyebabnya. Pikirkan kesalahan sebagai lampu lalu lintas merah: ada sesuatu yang salah!
  • Jika teks dimulai dengan "Peringatan", cari tahu apakah itu sesuatu yang perlu dikhawatirkan. Misalnya, jika Anda mendapat peringatan tentang nilai yang hilang di sebar sebaran dan Anda tahu ada nilai yang hilang, Anda baik-baik saja. Jika itu mengejutkan, lihat data Anda dan lihat apa yang hilang. Pikirkan peringatan sebagai lampu lalu lintas kuning: semuanya berfungsi dengan baik, tapi hati-hati / perhatikan.
  • Kalau tidak, teks itu hanya pesan. Baca, balas ke R, dan terima kasih sudah bicara dengan Anda. Pikirkan pesan sebagai lampu lalu lintas hijau: semuanya berfungsi dengan baik dan terus berjalan!

1.2.3 Kiat belajar kode

Belajar kode / program sangat mirip dengan belajar bahasa asing. Ini bisa jadi menakutkan dan membuat frustrasi pada awalnya. Rasa frustrasi seperti itu biasa terjadi dan wajar jika Anda merasa kecil hati ketika belajar. Namun, seperti halnya belajar bahasa asing, jika Anda berupaya dan tidak takut melakukan kesalahan, siapa pun dapat belajar dan meningkat.
Berikut adalah beberapa tips yang perlu diingat ketika Anda belajar memprogram:
  • Ingatlah bahwa komputer sebenarnya tidak sepintar itu : Anda mungkin berpikir komputer atau ponsel cerdas Anda "pintar," tetapi orang benar-benar menghabiskan banyak waktu dan energi untuk mendesainnya agar tampak "pintar." Pada kenyataannya, Anda harus memberi tahu komputer segala yang perlu dilakukan.Selain itu, instruksi yang Anda berikan ke komputer Anda tidak dapat memiliki kesalahan di dalamnya, juga tidak bisa ambigu dengan cara apa pun.
  • Ambil pendekatan “salin, tempel, dan atur” : Terutama ketika Anda mempelajari bahasa pemrograman pertama Anda atau Anda perlu memahami kode yang rumit, seringkali lebih mudah untuk mengambil kode yang sudah Anda ketahui berfungsi dan memodifikasinya sesuai dengan tujuan Anda. Ini bertentangan dengan mencoba mengetikkan kode dari awal. Kami menyebutnya pendekatan "salin, tempel, dan atur" . Jadi sejak awal, kami sarankan untuk tidak mencoba menulis kode dari memori, tetapi mengambil contoh yang ada yang telah kami berikan kepada Anda, lalu menyalin, menempel, dan mengubah mereka agar sesuai dengan tujuan Anda. Setelah Anda mulai merasa lebih percaya diri, Anda dapat perlahan-lahan menjauh dari pendekatan ini dan menulis kode dari awal. Pikirkan pendekatan “salin, tempel, dan atur” sebagai roda pelatihan bagi anak yang belajar mengendarai sepeda.Setelah merasa nyaman, mereka tidak akan membutuhkannya lagi.
  • Cara terbaik untuk belajar kode adalah dengan melakukan : Daripada belajar kode demi dirinya sendiri, kami menemukan bahwa belajar kode lebih lancar ketika Anda memiliki tujuan dalam pikiran atau ketika Anda sedang mengerjakan proyek tertentu, seperti menganalisis data Anda tertarik dan itu penting bagi Anda.
  • Praktek adalah kuncinya : Sama seperti satu-satunya metode untuk meningkatkan keterampilan bahasa asing Anda adalah melalui banyak latihan dan berbicara, satu-satunya metode untuk meningkatkan keterampilan pengkodean Anda adalah melalui banyak latihan.Namun, jangan khawatir, kami akan memberi Anda banyak kesempatan untuk melakukannya!

1.3 Apa itu paket R?

Hal lain yang membingungkan dengan banyak pengguna R baru adalah gagasan tentang paket R. Paket R memperluas fungsionalitas R dengan menyediakan fungsi, data, dan dokumentasi tambahan. Mereka ditulis oleh komunitas pengguna R di seluruh dunia dan dapat diunduh secara gratis dari internet.
Misalnya, di antara banyak paket yang akan kita gunakan dalam buku ini adalah paket ggplot2 (Wickham, Chang, dkk. 2019 ) untuk visualisasi data di Bab 2 , paket dplyr(Wickham, François, dkk. 2019 ) untuk perselisihan data dalam Bab 3 , paket moderndive (Kim dan Ismay 2019 ) yang menyertai buku ini, dan paket moderndive (Bray et al. 2019 )untuk "rapi" dan inferensi statistik transparan dalam Bab 8 , 9, dan 10 .
Analogi yang baik untuk paket R adalah mereka seperti aplikasi yang dapat Anda unduh ke ponsel:
Paket Analogi R versus R.
GAMBAR 1.4: Analogi paket R versus R.
Jadi R seperti ponsel baru: walaupun memiliki sejumlah fitur ketika Anda menggunakannya pertama kali, R tidak memiliki segalanya. Paket R seperti aplikasi yang dapat Anda unduh ke ponsel Anda dari Apple App Store atau Google Play Android.
Mari kita lanjutkan analogi ini dengan mempertimbangkan aplikasi Instagram untuk mengedit dan berbagi gambar.Katakanlah Anda telah membeli telepon baru dan Anda ingin membagikan foto yang baru saja Anda ambil dengan teman-teman di Instagram. Kamu butuh:
  1. Instal aplikasi : Karena ponsel Anda baru dan tidak termasuk aplikasi Instagram, Anda perlu mengunduh aplikasi dari App Store atau Google Play. Anda melakukan ini sekali dan Anda siap untuk saat ini. Anda mungkin perlu melakukan ini lagi di masa mendatang ketika ada pembaruan untuk aplikasi.
  2. Buka aplikasi : Setelah Anda menginstal Instagram, Anda harus membukanya.
Setelah Instagram terbuka di ponsel Anda, Anda kemudian dapat melanjutkan untuk berbagi foto dengan teman dan keluarga Anda. Prosesnya sangat mirip untuk menggunakan paket R. Kamu butuh:
  1. Instal paket : Ini seperti menginstal aplikasi di ponsel Anda. Sebagian besar paket tidak diinstal secara default ketika Anda menginstal R dan RStudio. Jadi, jika Anda ingin menggunakan paket untuk pertama kalinya, Anda harus menginstalnya terlebih dahulu. Setelah Anda menginstal paket, kemungkinan Anda tidak akan menginstalnya lagi kecuali Anda ingin memperbaruinya ke versi yang lebih baru.
  2. “Muat” paket : “Memuat” paket seperti membuka aplikasi di ponsel Anda. Paket tidak "dimuat" secara default ketika Anda memulai RStudio di komputer Anda; Anda perlu "memuat" setiap paket yang ingin Anda gunakan setiap kali Anda memulai RStudio.
Mari kita lakukan dua langkah ini untuk paket ggplot2 untuk visualisasi data.

1.3.1 Instalasi paket

Catatan tentang RStudio Server atau RStudio Cloud : Jika instruktur Anda memberi Anda tautan dan akses ke RStudio Server atau RStudio Cloud, Anda mungkin tidak perlu menginstal paket, karena mungkin sudah diinstal sebelumnya oleh instruktur Anda. Yang sedang berkata, itu masih merupakan ide yang baik untuk mengetahui proses ini untuk nanti ketika Anda tidak menggunakan RStudio Server atau Cloud, melainkan RStudio Desktop di komputer Anda sendiri.
Ada dua cara untuk menginstal paket R: cara mudah dan cara yang lebih maju. Mari kita instal paket ggplot2 dengan cara mudah dulu seperti yang ditunjukkan pada Gambar 1.5 .Di panel File RStudio:
  1. Klik pada tab "Paket".
  2. Klik "Instal" di sebelah Pembaruan.
  3. Ketik nama paket di bawah "Paket (pisahkan beberapa dengan spasi atau koma):" Dalam hal ini, ketik ggplot2.
  4. Klik "Instal."
Menginstal paket dalam R dengan cara mudah.
GAMBAR 1.5: Menginstal paket dalam R dengan cara mudah.
Cara alternatif tetapi sedikit kurang nyaman untuk menginstal suatu paket adalah dengan mengetik install.packages("ggplot2") di panel konsol RStudio dan menekan Return / Enter pada keyboard Anda. Catatan Anda harus menyertakan tanda kutip di sekitar nama paket.
Sama seperti aplikasi di ponsel Anda, Anda hanya perlu menginstal paket satu kali. Namun, jika Anda ingin memperbarui paket yang sebelumnya diinstal ke versi yang lebih baru, Anda perlu menginstalnya kembali dengan mengulangi langkah-langkah sebelumnya.
Cek pembelajaran
(LC1.1) Ulangi langkah instalasi sebelumnya, tetapi untuk paket dplyr , nycflights13 , dan knitr . Ini akan menginstal paket dplyr disebutkan sebelumnya untuk perselisihan data, paket nycflights13 yang berisi data pada semua penerbangan domestik yang meninggalkan bandara NYC pada 2013, dan paket knitr untuk membuat tabel yang mudah dibaca di R. Kami akan menggunakan paket ini dalam bagian selanjutnya.
Perhatikan bahwa jika Anda ingin output Anda di komputer Anda cocok dengan output yang disajikan di seluruh buku, Anda mungkin ingin menggunakan versi persis paket yang kami gunakan. Anda dapat menemukan daftar lengkap dari paket-paket ini dan versinya di Lampiran E. Ini kemungkinan tidak akan relevan untuk pemula, tetapi kami memasukkannya untuk alasan reproduktifitas.

1.3.2 Pemuatan paket

Ingatlah bahwa setelah Anda menginstal sebuah paket, Anda perlu "memuatnya." Dengan kata lain, Anda perlu "membukanya." Kami melakukan ini dengan menggunakan perintah library() .
Misalnya, untuk memuat paket ggplot2 , jalankan kode berikut di panel konsol. Apa yang kami maksud dengan “jalankan kode berikut”? Baik ketik atau salin dan tempel kode berikut ke panel konsol lalu tekan tombol Enter.

 library (ggplot2) 
Jika setelah menjalankan kode sebelumnya, kursor yang berkedip kembali di sebelah tanda > "prompt", itu berarti Anda berhasil dan paket ggplot2 sekarang dimuat dan siap digunakan. Namun, jika Anda mendapatkan "pesan kesalahan" merah yang bertuliskan ...
 Error in library(ggplot2) : there is no package called 'ggplot2' 
... itu berarti Anda tidak berhasil menginstalnya. Ini adalah contoh dari "pesan kesalahan" yang kita bahas di Subbagian 1.2.2 . Jika Anda mendapatkan pesan kesalahan ini, kembali ke Subbagian 1.3.1 pada instalasi paket R dan pastikan untuk menginstal paket ggplot2 sebelum melanjutkan.
Cek pembelajaran
(LC1.2) “Muat” paket dplyr , nycflights13 , dan knitrjuga dengan mengulangi langkah sebelumnya.

1.3.3 Penggunaan paket

Satu kesalahan yang sangat umum dilakukan pengguna R baru ketika ingin menggunakan paket tertentu adalah mereka lupa "memuat" mereka terlebih dahulu dengan menggunakan perintah library() baru saja kita lihat. Ingat: Anda harus memuat setiap paket yang ingin Anda gunakan setiap kali Anda memulai RStudio. Jika Anda tidak pertama-tama "memuat" paket, tetapi mencoba menggunakan salah satu fiturnya, Anda akan melihat pesan kesalahan yang mirip dengan:
 Error: could not find function 
Ini adalah pesan kesalahan yang berbeda dari yang baru saja Anda lihat pada paket yang belum diinstal. R memberi tahu Anda bahwa Anda mencoba menggunakan fungsi dalam paket yang belum "dimuat." R tidak tahu di mana menemukan fungsi yang Anda gunakan. Hampir semua pengguna baru lupa untuk melakukan ini ketika memulai, dan itu agak menjengkelkan untuk terbiasa melakukannya.Namun, Anda akan ingat dengan latihan dan setelah beberapa waktu itu akan menjadi kebiasaan Anda.

1.4 Jelajahi kumpulan data pertama Anda

Mari kita mempraktekkan semua yang telah kita pelajari sejauh ini dan mulai mengeksplorasi beberapa data nyata!Data datang kepada kami dalam berbagai format, dari gambar ke teks ke angka. Sepanjang buku ini, kami akan fokus pada kumpulan data yang disimpan dalam format tipe “spreadsheet”. Ini mungkin cara paling umum data dikumpulkan dan disimpan di banyak bidang. Ingat dari Subbab 1.2.1 bahwa dataset tipe-spreadsheet ini disebut bingkai data dalam R. Kami akan fokus bekerja dengan data yang disimpan sebagai bingkai data di seluruh buku ini.
Pertama-tama mari kita muat semua paket yang diperlukan untuk bab ini, dengan anggapan Anda telah menginstalnya.Baca Bagian 1.3 untuk informasi tentang cara menginstal dan memuat paket R jika Anda belum melakukannya.

 library (nycflights13) library (dplyr) library (knitr) 
Di awal semua bab berikutnya dalam buku ini, kami akan selalu memiliki daftar paket yang harus Anda instal dan muat untuk bekerja dengan kode R bab itu.

1.4.1 paket nycflights13

Banyak dari kita telah terbang dengan pesawat terbang atau mengenal seseorang yang memiliki. Perjalanan udara telah menjadi aspek yang selalu ada dalam kehidupan banyak orang. Jika Anda melihat papan informasi penerbangan Keberangkatan di bandara, Anda akan sering melihat bahwa beberapa penerbangan tertunda karena berbagai alasan.Adakah cara agar kita dapat memahami alasan yang menyebabkan penundaan penerbangan?
Kami semua ingin tiba di tujuan tepat waktu bila memungkinkan. (Kecuali jika Anda diam-diam suka nongkrong di bandara. Jika Anda salah satu dari orang-orang ini, berpura-pura sejenak bahwa Anda sangat mengantisipasi berada di tujuan akhir Anda.) Di sepanjang buku ini, kita akan menganalisis data yang terkait dengan semua domestik penerbangan yang berangkat dari salah satu dari tiga bandara utama Kota New York pada 2013: Newark Liberty International (EWR), John F. Kennedy International (JFK), dan Bandara LaGuardia (LGA). Kami akan mengakses data ini menggunakan paket nycflights13 R, yang berisi lima nycflights13 data yang disimpan dalam lima bingkai data:
  • flights : Informasi tentang semua 336.776 penerbangan.
  • airlines : Tabel yang mencocokkan nama maskapai penerbangan dan kode penerbangan International Air Transport Association (IATA) dua huruf mereka (juga dikenal sebagai kode maskapai penerbangan) untuk 16 perusahaan maskapai penerbangan. Misalnya, "DL" adalah kode dua huruf untuk Delta.
  • planes : Informasi tentang masing-masing 3.322 pesawat fisik yang digunakan.
  • weather : Data meteorologi setiap jam untuk masing-masing dari tiga bandara NYC. Kerangka data ini memiliki 26.115 baris, kira-kira sesuai dengan \ (365 \ kali 24 \ kali 3 = 26.280 \) kemungkinan pengukuran setiap jam yang dapat diamati di tiga lokasi selama satu tahun.
  • airports : Nama, kode, dan lokasi dari 1.458 tujuan domestik.

1.4.2 bingkai data flights

Kami akan mulai dengan menjelajahi kerangka data flightsdan mendapatkan gagasan tentang strukturnya. Jalankan kode berikut di konsol Anda, baik dengan mengetiknya atau memotong dan menempelkannya. Ini menampilkan isi frame data flights di konsol Anda. Perhatikan bahwa tergantung pada ukuran monitor Anda, output mungkin sedikit berbeda.

 flights 
 # A tibble: 336,776 x 19 year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time <int> <int> <int> <int> <int> <dbl> <int> <int> 1 2013 1 1 517 515 2 830 819 2 2013 1 1 533 529 4 850 830 3 2013 1 1 542 540 2 923 850 4 2013 1 1 544 545 -1 1004 1022 5 2013 1 1 554 600 -6 812 837 6 2013 1 1 554 558 -4 740 728 7 2013 1 1 555 600 -5 913 854 8 2013 1 1 557 600 -3 709 723 9 2013 1 1 557 600 -3 838 846 10 2013 1 1 558 600 -2 753 745 # … with 336,766 more rows, and 11 more variables: arr_delay <dbl>, # carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>, # air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm> 
Mari kita ekstrak hasil ini:
  • A tibble: 336,776 x 19 : Sebuah tibble adalah jenis tertentu dari bingkai data dalam R. Kerangka data khusus ini memiliki
    • 336,776 baris sesuai dengan pengamatan yangberbeda. Di sini, setiap pengamatan adalah penerbangan.
    • 19 kolom sesuai dengan 19 variabel yangmenggambarkan setiap pengamatan.
  • year , month , day , dep_time , sched_dep_time , dep_delay , dan arr_time adalah kolom yang berbeda, dengan kata lain, variabel yang berbeda dari dataset ini.
  • Kami kemudian memiliki pratinjau dari 10 baris pengamatan pertama yang sesuai dengan 10 penerbangan pertama. R hanya menampilkan 10 baris pertama, karena jika itu menunjukkan semua 336,776baris, itu akan membanjiri layar Anda.
  • ... with 336,766 more rows, and 11 more variables:menunjukkan kepada kami bahwa 336.766 lebih banyak data dan 11 lebih banyak variabel tidak dapat ditampung di layar ini.
Sayangnya, output ini tidak memungkinkan kami untuk mengeksplorasi data dengan sangat baik, tetapi memberikan preview yang bagus. Mari kita lihat beberapa cara berbeda untuk mengeksplorasi bingkai data.

1.4.3 Menjelajahi bingkai data

Ada banyak cara untuk merasakan data yang terkandung dalam bingkai data seperti flights . Kami menyajikan tiga fungsi yang mengambil sebagai "argumen" (input mereka) bingkai data yang dipermasalahkan. Kami juga menyertakan metode keempat untuk menjelajahi satu kolom tertentu dari kerangka data:
  1. Menggunakan fungsi View() , yang memunculkan penampil data internal RStudio.
  2. Menggunakan fungsi glimpse() , yang termasuk dalam paket dplyr .
  3. Menggunakan fungsi kable() , yang termasuk dalam paket knitr .
  4. Menggunakan $ "operator ekstraksi," yang digunakan untuk melihat satu variabel / kolom dalam bingkai data.
1. View() :
Jalankan View(flights) di konsol Anda di RStudio, baik dengan mengetiknya atau memotong dan menempelkannya ke panel konsol. Jelajahi bingkai data ini dalam penampil munculan yang dihasilkan. Anda harus terbiasa melihat bingkai data apa pun yang Anda temui. Perhatikan huruf Vdalam View() . R peka huruf besar-kecil, sehingga Anda akan mendapatkan pesan kesalahan jika Anda menjalankan view(flights) alih-alih View(flights) .
Cek pembelajaran
(LC1.3) Apa yang dimaksud dengan SATU baris dalam setdata flights ini?
  • A. Data di maskapai penerbangan
  • B. Data pada penerbangan
  • C. Data di bandara
  • D. Data pada beberapa penerbangan
Dengan menjalankan View(flights) , kami dapat menjelajahi berbagai variabel yang tercantum dalam kolom.Perhatikan bahwa ada banyak jenis variabel. Beberapa variabel seperti distance , day , dan arr_delay adalah apa yang kita sebut variabel kuantitatif . Variabel-variabel ini bersifat numerik. Variabel lain di sini adalah kategori .
Perhatikan bahwa jika Anda melihat kolom paling kiri dari tampilan View(flights) output, Anda akan melihat kolom angka. Ini adalah nomor baris dari dataset. Jika Anda melirik satu baris dengan nomor yang sama, katakan baris 5, Anda bisa mendapatkan gambaran tentang apa yang diwakili setiap baris. Ini akan memungkinkan Anda untuk mengidentifikasi objek apa yang sedang dijelaskan dalam baris tertentu dengan memperhatikan nilai-nilai kolom di baris tertentu. Ini sering disebut unit pengamatan . Unit pengamatan dalam contoh ini adalah penerbangan individual yang berangkat dari Kota New York pada tahun 2013. Anda dapat mengidentifikasi unit pengamatan dengan menentukan "benda" apa yang diukur atau dijelaskan oleh masing-masing variabel. Kita akan berbicara lebih banyak tentang unit pengamatan dalam Subbab 1.4.4 tentang variabel identifikasi dan pengukuran .
2. glimpse() :
Cara kedua yang akan kami dplyr untuk menjelajahi bingkai data adalah menggunakan fungsi glimpse()termasuk dalam paket dplyr . Dengan demikian, Anda hanya dapat menggunakan fungsi glimpse() setelah Anda memuat paket dplyr dengan menjalankan library(dplyr). Fungsi ini memberi kami perspektif alternatif untuk menjelajahi bingkai data daripada fungsi View() :

 glimpse (flights) 
 Observations: 336,776 Variables: 19 $ year <int> 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, … $ month <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … $ day <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … $ dep_time <int> 517, 533, 542, 544, 554, 554, 555, 557, 557, 558, 558,… $ sched_dep_time <int> 515, 529, 540, 545, 600, 558, 600, 600, 600, 600, 600,… $ dep_delay <dbl> 2, 4, 2, -1, -6, -4, -5, -3, -3, -2, -2, -2, -2, -2, -… $ arr_time <int> 830, 850, 923, 1004, 812, 740, 913, 709, 838, 753, 849… $ sched_arr_time <int> 819, 830, 850, 1022, 837, 728, 854, 723, 846, 745, 851… $ arr_delay <dbl> 11, 20, 33, -18, -25, 12, 19, -14, -8, 8, -2, -3, 7, -… $ carrier <chr> "UA", "UA", "AA", "B6", "DL", "UA", "B6", "EV", "B6", … $ flight <int> 1545, 1714, 1141, 725, 461, 1696, 507, 5708, 79, 301, … $ tailnum <chr> "N14228", "N24211", "N619AA", "N804JB", "N668DN", "N39… $ origin <chr> "EWR", "LGA", "JFK", "JFK", "LGA", "EWR", "EWR", "LGA"… $ dest <chr> "IAH", "IAH", "MIA", "BQN", "ATL", "ORD", "FLL", "IAD"… $ air_time <dbl> 227, 227, 160, 183, 116, 150, 158, 53, 140, 138, 149, … $ distance <dbl> 1400, 1416, 1089, 1576, 762, 719, 1065, 229, 944, 733,… $ hour <dbl> 5, 5, 5, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, … $ minute <dbl> 15, 29, 40, 45, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, … $ time_hour <dttm> 2013-01-01 05:00:00, 2013-01-01 05:00:00, 2013-01-01 … 
Perhatikan bahwa glimpse() akan memberi Anda beberapa entri pertama dari setiap variabel berturut-turut setelah nama variabel. Selain itu, tipe data (lihat Subbab 1.2.1 ) dari variabel diberikan segera setelah setiap nama variabel di dalam < > . Di sini, int dan dbl merujuk ke “integer” dan “double”, yang merupakan terminologi pengkodean komputer untuk variabel kuantitatif / numerik. "Doubles" berukuran dua kali lipat untuk disimpan di komputer dibandingkan dengan bilangan bulat.
Sebaliknya, chr mengacu pada "karakter", yang merupakan terminologi komputer untuk data teks. Dalam sebagian besar bentuk, data teks, seperti carrier atau originpenerbangan, adalah variabel kategorikal. Variabel time_hour adalah tipe data lain: dttm . Jenis variabel ini mewakili kombinasi tanggal dan waktu. Namun, kami tidak akan bekerja dengan tanggal dan waktu dalam buku ini; kami meninggalkan topik ini untuk buku-buku ilmu data lainnya seperti Pengantar Ilmu Data oleh Tiffany-Anne Timbers, Melissa Lee, dan Trevor Campbell atau R untuk Ilmu Data(Grolemund dan Wickham 2017 ) .
Cek pembelajaran
(LC1.4) Apa beberapa contoh lain dalam dataset variabel kategorikal ini ? Apa yang membuatnya berbeda dari variabel kuantitatif ?
3. kable() :
Cara terakhir untuk mengeksplorasi keseluruhan kerangka data menggunakan fungsi kable() dari paket knitr . Mari kita jelajahi kode-kode operator yang berbeda untuk semua maskapai penerbangan dalam dataset kami dengan dua cara. Jalankan kedua baris kode ini di konsol:

 airlines kable (airlines) 
Pada pandangan pertama, mungkin tidak ada banyak perbedaan dalam output. Namun, ketika menggunakan alat untuk menghasilkan laporan yang dapat direproduksi seperti R Markdown , kode yang terakhir menghasilkan output yang jauh lebih mudah dibaca dan ramah pembaca. Anda akan melihat kami menggunakan gaya ramah pembaca ini di banyak tempat di buku ini ketika kami ingin mencetak bingkai data sebagai tabel yang bagus.
4. $ operator
Terakhir, operator $ memungkinkan kita untuk mengekstrak dan kemudian mengeksplorasi satu variabel dalam bingkai data. Misalnya, jalankan yang berikut ini di konsol Anda
Kami menggunakan $operator untuk mengekstrak hanya namevariabel dan mengembalikannya sebagai vektor dengan panjang 16. Kami hanya akan sesekali mengeksplorasi bingkai data menggunakan $operator, sebagai gantinya mendukung View()dan glimpse()fungsi.

1.4.4 Identifikasi dan variabel pengukuran

Ada perbedaan halus antara jenis variabel yang akan Anda temui dalam bingkai data. Ada variabel identifikasi dan variabel pengukuran . Sebagai contoh, mari kita jelajahi airportsbingkai data dengan menunjukkan output dari glimpse(airports):

 glimpse (airports) 
 Observations: 1,458 Variables: 8 $ faa <chr> "04G", "06A", "06C", "06N", "09J", "0A9", "0G6", "0G7", "0P2", … $ name <chr> "Lansdowne Airport", "Moton Field Municipal Airport", "Schaumbu… $ lat <dbl> 41.1, 32.5, 42.0, 41.4, 31.1, 36.4, 41.5, 42.9, 39.8, 48.1, 39.… $ lon <dbl> -80.6, -85.7, -88.1, -74.4, -81.4, -82.2, -84.5, -76.8, -76.6, … $ alt <dbl> 1044, 264, 801, 523, 11, 1593, 730, 492, 1000, 108, 409, 875, 1… $ tz <dbl> -5, -6, -6, -5, -5, -5, -5, -5, -5, -8, -5, -6, -5, -5, -5, -5,… $ dst <chr> "A", "A", "A", "A", "A", "A", "A", "A", "U", "A", "A", "U", "A"… $ tzone <chr> "America/New_York", "America/Chicago", "America/Chicago", "Amer… 
Variabel faadan nameapa yang kita sebut variabel identifikasi , variabel yang secara unik mengidentifikasi setiap unit pengamatan. Dalam hal ini, variabel identifikasi secara unik mengidentifikasi bandara. Variabel tersebut terutama digunakan dalam praktik untuk mengidentifikasi secara unik setiap baris dalam bingkai data. faamemberikan kode unik yang disediakan oleh FAA untuk bandara itu, sementara namevariabel memberikan nama resmi bandara yang lebih panjang. Variabel yang tersisa ( latlonalttzdsttzone) sering disebut pengukuran atau karakteristikvariabel: variabel yang menggambarkan sifat dari masing-masing unit observasional. Sebagai contoh, latdanlongmenggambarkan garis lintang dan bujur dari setiap bandara.
Selain itu, kadang-kadang variabel tunggal mungkin tidak cukup untuk mengidentifikasi secara unik setiap unit pengamatan: kombinasi variabel mungkin diperlukan. Meskipun ini bukan aturan mutlak, untuk tujuan organisasi dianggap praktik yang baik untuk memiliki variabel identifikasi Anda di kolom paling kiri dari kerangka data Anda.
Cek pembelajaran
(LC1.5) sifat masing-masing bandara Apa variabel latlonalttzdst, dan tzonemenjelaskan dalam airportsframe data? Ambil tebakan terbaik Anda.
(LC1.6) Berikan nama variabel dalam bingkai data dengan setidaknya tiga variabel di mana salah satunya adalah variabel identifikasi dan dua lainnya tidak. Selanjutnya, buat kerangka data Anda sendiri yang sesuai dengan kondisi ini.

1.4.5 File bantuan

Fitur bagus lain dari R adalah file bantuan, yang menyediakan dokumentasi untuk berbagai fungsi dan kumpulan data. Anda dapat memunculkan file bantuan dengan menambahkan ?sebelum nama fungsi atau bingkai data dan kemudian jalankan ini di konsol. Anda kemudian akan disajikan dengan halaman yang menunjukkan dokumentasi yang sesuai jika ada. Sebagai contoh, mari kita lihat file bantuan untuk flightsbingkai data.

 ?flights 
File bantuan harus muncul di panel Bantuan RStudio. Jika Anda memiliki pertanyaan tentang fungsi atau kerangka data yang termasuk dalam paket R, Anda harus terbiasa berkonsultasi dengan file bantuan segera.
Cek pembelajaran
(LC1.7) Lihatlah file bantuan untuk airportsbingkai data. Merevisi dugaan sebelumnya Anda tentang apa variabel latlonalttzdst, dan tzonemasing-masing menggambarkan.

1.5 Kesimpulan

Kami telah memberi Anda apa yang kami rasa merupakan seperangkat alat yang layak untuk mengeksplorasi data dalam R. Apakah bab ini berisi semua yang perlu Anda ketahui? Benar-benar tidak.Mencoba memasukkan segala sesuatu dalam bab ini akan membuat bab itu begitu besar sehingga tidak akan berguna! Seperti yang kami katakan sebelumnya, cara terbaik untuk menambahkan ke kotak peralatan Anda adalah masuk ke RStudio dan menjalankan dan menulis kode sebanyak mungkin.

1.5.1 Sumber daya tambahan

Jika Anda baru mengenal dunia pengkodean, R, dan RStudio dan merasa Anda bisa mendapat manfaat dari pengantar yang lebih rinci, kami sarankan Anda membaca buku pendek, Getting Getting to R, RStudio, dan R Markdown (Ismay dan Kennedy 2016 ) . Ini termasuk rekaman screencast yang dapat Anda ikuti dan jeda saat Anda belajar. Buku ini juga berisi pengantar R Markdown, alat yang digunakan untuk penelitian yang dapat direproduksi di R.
Pratinjau Membiasakan R, RStudio, dan R Penurunan Nilai.
GAMBAR 1.6: Pratinjau Membiasakan R, RStudio, dan R Penurunan Nilai .

1.5.2 Apa yang akan datang?

Kita sekarang akan memulai bagian "Ilmu Data dengan tidyverse" dari buku ini di Bab 2 seperti yang ditunjukkan pada Gambar 1.7 dengan apa yang kita rasakan adalah alat yang paling penting dalam kotak alat ilmuwan data: visualisasi data. Kami akan terus mengeksplorasi data yang termasuk dalam nycflights13paket menggunakan ggplot2paket untuk visualisasi data. Anda akan melihat bahwa visualisasi data adalah alat yang ampuh untuk ditambahkan ke kotak alat Anda untuk eksplorasi data yang memberikan wawasan tambahan tentang apa View()dan glimpse()fungsi dapat menyediakan.
Bagan alur ModernDive - ke Bagian I!
GAMBAR 1.7: Bagan alur ModernDive - ke Bagian I!

Referensi

Bray, Andrew, Chester Ismay, Evgeni Chasnovski, Ben Baumer, dan Mine Cetinkaya-Rundel. 2019. Infer: Inferensi Statistik Rapi . https://CRAN.R-project.org/package=infer .
Grolemund, Garrett, dan Hadley Wickham. 2017. R untuk Ilmu Data . Pertama.Sebastopol, CA: O'Reilly Media. https://r4ds.had.co.nz/ .
Ismay, Chester, dan Patrick C. Kennedy. 2016. Membiasakan diri dengan R, RStudio, dan R Penurunan Nilai . https://rbasics.netlify.com .
Kim, Albert Y., dan Chester Ismay. 2019. Moderndive: Regresi Linier Ramah Tidyverse-Friendly . https://CRAN.R-project.org/package=moderndive .
Wickham, Hadley, Winston Chang, Lionel Henry, Thomas Lin Pedersen, Kohske Takahashi, Claus Wilke, Kara Woo, dan Hiroaki Yutani. 2019. Ggplot2: Membuat Visualisasi Data yang Elegan Menggunakan Grammar of Graphics . https://CRAN.R-project.org/package=ggplot2 .
Wickham, Hadley, Romain François, Lionel Henry, dan Kirill Müller. 2019. Dplyr: Tata Bahasa Manipulasi Data . https://CRAN.R-project.org/package=dplyr .