Lewati ke konten utama

Mengimpor Data ke R - Bagian Dua

Tutorial tentang mengimpor data ke R. Fokus pada membaca data dari sumber seperti perangkat lunak statistik, basis data, webscraping, dan lainnya.
· 15 mnt Baca

Jelajahi bersama AI

Dalam tutorial lanjutan dari This R Data Import Tutorial Is Everything You Need-Part One, DataCamp melanjutkan dengan tutorial komprehensif namun mudah diikuti untuk mengimpor data ke R dengan cepat, mulai dari file teks datar sederhana hingga file SPSS dan SAS yang lebih lanjut.

Seperti yang banyak pembaca kami perhatikan dari pos pertama, beberapa paket hebat untuk mengimpor data ke R belum mendapat perhatian, dan pos tersebut juga belum membahas secara eksplisit perbedaan antara bekerja dengan set data standar dan set data besar. Itulah mengapa ini akan menjadi fokus pos hari ini.

Teruskan membaca untuk menemukan cara lain dan baru untuk mengimpor file spesifik Anda ke R, dan jangan ragu untuk menghubungi jika Anda memiliki pertanyaan tambahan atau menemukan kesalahan yang perlu kami koreksi.

(Coba kursus interaktif ini: Importing Data in R (Part 1), untuk bekerja dengan file CSV dan Excel di R.)

Mendapatkan Data dari Sumber Umum ke R

Pertama, pos ini akan membahas lebih dalam cara mendapatkan data dari sumber umum, yang sering kali berupa data mirip spreadsheet, ke R. Seperti pada pos sebelumnya, fokusnya adalah membaca data ke R yang berbeda dari Excel atau jenis file lainnya.

Berikutnya, data dari sumber lain seperti perangkat lunak statistik, basis data, web scraping, dll. akan dibahas.

Jika Anda ingin mengetahui lebih banyak tentang langkah-langkah yang mungkin perlu dilakukan sebelum mengimpor data, buka pos pertama kami, yang menjelaskan cara menyiapkan data dan ruang kerja sebelum memasukkan data ke R.

Membaca File Datar ke R dengan scan()

Selain read.table(), yang disebutkan dalam pos pertama tutorial impor data R, fungsi scan() juga dapat digunakan saat menangani data yang disimpan dalam file teks sederhana dengan pembatas. Tidak seperti fungsi read.table(), fungsi scan() mengembalikan list atau vektor, bukan data frame.

Misalkan Anda memiliki dokumen .txt berikut:

24 1991
21 1993
53 1962

Anda dapat membaca datanya (yang bisa Anda unduh di sini) dengan perintah berikut:

data <- scan("birth.txt")

Catatan bahwa file Anda juga bisa berupa set data online. Dalam kasus itu, Anda cukup memberikan URL sebagai argumen pertama fungsi scan().

Atau, Anda juga bisa membaca data ke dalam sebuah matriks:

data <- matrix(scan("birth.txt"),
               nrow=2,
               byrow=TRUE)

Tip: jika Anda ingin melakukannya secara menyeluruh, Anda mungkin perlu menentukan argumen tambahan agar matriks sesuai dengan yang Anda inginkan. Kunjungi halaman ini untuk informasi lebih lanjut tentang fungsi matrix().

Anda juga dapat membaca kolom dari file masukan ke dalam vektor terpisah:

data <- scan("age.txt",
             what = list(Age = 0,
                         Birthyear= 0),
             skip=1,
             quiet=TRUE)

Catatan bagaimana Anda pertama-tama memberikan (path ke) file dengan ekstensinya sebagai argumen (tergantung apakah Anda mengatur direktori kerja ke folder yang menyimpan dataset Anda atau tidak) lalu menentukan tipe data yang akan dibaca, apakah Anda ingin melewati baris pertama dataset, karakter apa yang membatasi field, dan apakah Anda ingin mencetak baris yang menyatakan berapa banyak item yang telah dibaca.

Jika data Anda juga dapat berisi tipe data lain, Anda perlu menyesuaikan fungsi scan() sedikit, seperti dalam contoh ini:

data <- scan("age.csv",
             what = list(Age = 0,
                         Name= "",
                         Birthyear= 0),
             skip=1,
             sep=";",
             quiet=TRUE)

Tip: Anda juga bisa mencobanya sendiri! Unduh file teks yang digunakan di atas di sini.

Dan kemudian Anda juga dapat membaca data ke dalam sebuah data frame:

data <- data.frame(scan("age.csv",
                        what = list(Age = 0,
                                    Name = "",
                                    Birthyear= 0),
                        skip=1,
                        sep=";",
                        quiet=TRUE)

Tip: banyak argumen yang dapat diterima fungsi scan() sama dengan yang bisa Anda gunakan pada fungsi read.table(). Itulah mengapa selalu berguna memeriksa dokumentasinya! Kunjungi di sini jika Anda ingin membaca argumen fungsi scan().

Ingat bahwa Anda dapat mendapatkan dan mengatur direktori kerja dengan perintah berikut, masing-masing:

getwd()
setwd("<path to your folder>")

Mengimpor Data Kolom Tetap ke R dengan read.fwf()

Untuk membaca tabel “data berformat lebar tetap” ke dalam data frame di R, Anda dapat menggunakan fungsi read.fwf() dari paket utils.

Anda menggunakan fungsi ini ketika file data Anda memiliki kolom yang berisi spasi, atau kolom tanpa spasi sebagai pemisah.

   Phys / 00 / 1:    M  abadda
   Math / 00 / 2:    F  bcdccb
   Lang / 00 / 3:    F  abcdab
   Chem / 00 / 4:    M  cdabaa

Di sini, Anda tahu misalnya bahwa nilai mata pelajaran selalu berada pada 7 karakter pertama di setiap baris dan nilai jenis kelamin selalu di posisi 22, dan skor dimulai dari karakter 25 hingga 30.

Jika Anda ingin mencoba memuat data ini ke R, Anda dapat dengan mudah mengunduh file teksnya di sini.

Anda perlu menjalankan perintah berikut untuk mendapatkan data di atas dengan benar ke R:

read.fwf("scores.txt",
         widths= c(7,-14,1,-2,1,1,1,1,1,1),
         col.names=c("subject","sex","s1","s2","s3","s4","s5","s6"),
         strip.white=TRUE)

Catatan bahwa argumen widths memberikan lebar field lebar tetap. Dalam kasus ini, tujuh karakter pertama di file dicadangkan untuk nama mata kuliah; Lalu, Anda tidak ingin empat belas karakter berikutnya dibaca: Anda memberikan -14. Selanjutnya, Anda butuh satu karakter untuk mewakili jenis kelamin, tetapi Anda tidak ingin dua karakter berikutnya, jadi Anda memberikan -2. Semua karakter berikutnya perlu dibaca ke kolom terpisah, jadi Anda membaginya dengan memberikan 1,1,1,1,1,1 ke argumen tersebut. Tentu saja, nilai-nilai ini dapat dan akan berbeda, tergantung pada kolom mana yang ingin Anda impor.

Ada sejumlah argumen tambahan yang dapat Anda berikan ke fungsi read.fwf(). Klik di sini untuk membacanya.

Catatan bahwa jika Anda ingin memuat file dengan spesifikasi format gaya Fortran, Anda dapat menggunakan fungsi read.fortran():

data <- tempfile()
cat(file = data, "345678", "654321", sep = "\n")
read.fortran(data, c("F2.1","F2.0","I2"))

Seperti yang terlihat dari contoh kecil di atas, Anda menggunakan spesifikasi format gaya Fortran sebagai argumen kedua fungsi read.fortran(). Argumen yang mungkin Anda berikan bergaya: “rFl.d”, “rDl.d”, “rXl”, “rAl” atau “rIl”, di mana “l” adalah jumlah kolom, “d” adalah jumlah tempat desimal, dan “r” adalah jumlah pengulangan. Dalam kasus ini, Anda melihat 2.1, 2.0 dan 2 yang dicantumkan melalui fungsi c(), yang berarti Anda memiliki tiga kolom dengan dua baris. Pada kolom pertama, Anda memiliki nilai dengan satu tempat desimal, pada kolom kedua dan ketiga juga berisi nilai tanpa tempat desimal.

Terkait tipe nilai yang dikandung kolom, Anda dapat memiliki:

  • “F” dan “D” untuk format numerik;
  • “A” jika Anda memiliki nilai karakter;
  • “I” untuk nilai integer;
  • Dan “X” untuk menandakan kolom yang dapat dilewati.

Dalam kasus ini, kolom pertama dan kedua akan berisi format numerik, sementara kolom ketiga berisi nilai integer.

Catatan bahwa kode pengulangan “r” dan kode tempat desimal “d” selalu opsional. Kode panjang “l” diperlukan kecuali untuk format “X” ketika “r” ada.

Mengimpor (Google) Spreadsheet ke R

Spreadsheet dapat diimpor ke R dengan berbagai cara, seperti yang mungkin sudah Anda baca dalam tutorial kami tentang membaca dan mengimpor file Excel ke R atau pos pertama This R Data Import Tutorial Is Everything You Need. Bagian ini akan mengelaborasi hal tersebut dan melangkah lebih jauh, termasuk juga Google spreadsheet dan file DIF!

Gulir lebih lanjut untuk mengetahui cara mengimpor spreadsheet Anda ke R.

Mengimpor Spreadsheet Excel ke R

Selain paket xlsx, Anda juga memiliki sejumlah opsi lain untuk membaca spreadsheet ke R:

1. Membaca Spreadsheet Excel ke R dari Clipboard

Jika Anda memiliki spreadsheet yang terbuka, Anda dapat menyalin isinya ke clipboard dan mengimpornya dengan cepat ke R. Untuk melakukan ini, Anda dapat menggunakan fungsi readClipboard() atau read.table():

readClipboard() #Only on Windows
read.table(file="clipboard")`

Seperti yang akan Anda lihat jika mencobanya, pendekatan pertama bekerja baik untuk data vektor, namun cukup rumit jika Anda memiliki data tabular di clipboard. Jika Anda ingin tahu lebih lanjut tentang read.table(), Anda sebaiknya pergi ke bagian pertama dari tutorial impor data R atau tutorial kami tentang membaca dan mengimpor file Excel ke R.

2. Membaca Spreadsheet Excel ke R Melalui Paket RODBC

Cara kedua untuk memasukkan spreadsheet Excel Anda ke R adalah melalui paket RODBC:

  • Cara pertama menggunakan paket ini adalah seperti berikut:
library(RODBC)
connection <- odbcConnect("<DSN>")

Catatan bahwa argumen yang Anda berikan ke odbcConnect() sebenarnya adalah DSN. Untuk panduan lengkap tentang cara menyiapkan DSN, menyiapkan koneksi, dll., buka halaman ini untuk tutorial yang ekstensif namun mudah diakses!

  • Setelah Anda menyiapkan koneksi, Anda juga bisa menggunakan fungsi sqlQuery() untuk mendapatkan data dari spreadsheet .xls:
query <- "<SQL Query>"
data <- sqlQuery(connection,
                 query)
str(data)

Tip besar: buka halaman ini untuk tutorial yang ekstensif namun mudah diakses!

Pada akhir sesi R, jangan lupa untuk menutup koneksi:

odbcCloseAll()

Tip: Jika Anda ingin tahu lebih banyak tentang mengimpor spreadsheet atau file Excel ke R, pastikan untuk menuju ke tutorial pertama kami tentang mengimpor data ke R atau pertimbangkan membaca tutorial kami tentang membaca dan mengimpor file Excel ke R, yang membahas paket readxl dan XLConnect, di antaranya.

Mengimpor Google Spreadsheet ke R

Paket googlesheets dengan fungsi gs_read() memungkinkan Anda membaca Google spreadsheet ke R.

Mulailah dengan menjalankan baris kode berikut:

gs_ls()

Biarkan peramban terbuka dan selesaikan proses autentikasi. Lalu, jika Anda ingin membaca atau mengedit data, Anda harus mendaftarkannya. Anda dapat melakukannya dengan menentukan spreadsheet Anda berdasarkan judul atau key:

data <- gs_title("<your spreadsheet>")
data <- gs_key()

Berikutnya, Anda dapat membaca datanya:

gs_read(data)

Ini hanyalah gambaran singkat tentang apa yang dilakukan dengan paket googlesheets. Pastikan membaca semua detailnya di sini, dan jangan lupa juga melihat halaman ini.

Membaca File Data Interchange Format (DIF) ke R

Gunakan fungsi read.DIF() untuk memasukkan file DIF Anda ke R:

data <- read.DIF("<your spreadsheet>",
                 header=FALSE,
                 as.is = !stringsAsFactors)

Catatan bahwa Anda dapat menentukan apakah spreadsheet Anda memiliki header atau tidak dan apakah Anda ingin mengimpor data “apa adanya”, yaitu apakah Anda ingin mengonversi variabel karakter menjadi faktor. Dalam kasus ini, Anda tidak menginginkannya, jadi Anda memberikan !stringsAsFactors.

Untuk informasi lebih lanjut tentang fungsi ini atau argumennya, buka halaman ini.

Mengimpor File Excel ke R

Selain spreadsheet, Anda mungkin juga tertarik untuk memasukkan file Excel sebenarnya ke R. Tidak perlu mencari lagi dan lanjutkan membaca untuk mengetahui caranya!

Catatan bahwa pos ini hanya mengelaborasi apa yang telah dijelaskan dalam tutorial kami tentang membaca dan mengimpor file Excel ke R dan pos pertama This R Data Import Tutorial Is Everything You Need!

Mengimpor File Excel ke R dengan readxl

Meskipun paket ini masih dalam pengembangan aktif, tetap layak dicoba, karena menawarkan cara yang cukup mudah untuk membaca file Excel:

library(readxl)
read_excel("<path to file")

Ingat bahwa Anda bisa cukup mengetikkan nama file beserta ekstensinya jika foldernya ada di direktori kerja Anda. Dapatkan dan atur direktori kerja Anda melalui baris kode berikut:

getwd()
setwd("<Path to your folder>")

Catatan bahwa Anda dapat menentukan sheet yang akan dibaca, nama dan tipe kolom, nilai hilang, dan jumlah baris yang akan dilewati sebelum membaca data dengan argumen sheet, col_names, col_types, na dan skip, masing-masing. Baca selengkapnya di sini.

Membaca File Excel ke R dengan openxlsx

Paket openxlsx juga menyediakan cara sederhana untuk membaca file Excel .xlsx ke R:

library(openxlsx)
read.xlsx("<path to your file>")

Jika Anda ingin mengetahui detail lebih lanjut tentang paket ini atau argumen yang dapat Anda berikan ke fungsi read.xlsx(), pastikan klik di sini.

Tip: Jika Anda ingin tahu lebih banyak tentang mengimpor file Excel ke R, pastikan menuju ke tutorial pertama kami tentang “mengimpor data ke R” atau pertimbangkan membaca tutorial ekstensif kami tentang membaca dan mengimpor file Excel ke R, yang juga membahas paket XLConnect, di antaranya.

Mengimpor OpenDocument Spreadsheet ke R

Gunakan fungsi read.ods() dari paket readODS untuk membaca OpenDocument spreadsheet Anda ke R dan memasukkannya ke dalam data frame:

library(readODS)
read.ods("<path to your file>",
         sheet = 1,
         formulaAsFormula = FALSE)

Catatan bahwa, selain file yang ingin Anda masukkan ke R, Anda dapat menentukan sheet yang diinginkan dan Anda memiliki opsi untuk menampilkan rumus sebagai rumus (misalnya, “SUM(B1:B3)” atau nilai hasilnya).

Mengimpor File JavaScript Object Notation (JSON) ke R

Dalam pos pertama kami tentang mengimpor data ke R, paket rjson disebutkan untuk memasukkan file JSON ke R.

Namun demikian, ada juga paket lain yang dapat Anda gunakan untuk mengimpor file JSON ke R. Teruskan membaca untuk mengetahui lebih lanjut!

Mengimpor File JSON ke R dengan Paket jsonlite

Baru-baru ini masuk 25 besar paket R yang paling banyak diunduh dengan 66952 unduhan, paket jsonlite jelas merupakan salah satu favorit pengguna R.

Anda mengimpor file JSON dengan fungsi fromJSON():

library(jsonlite)
data <- fromJSON("<Path to your JSON file>")

Untuk panduan cepat yang dijelaskan dengan baik tentang paket jsonlite, buka di sini.

Mengimpor File JSON ke R dengan paket RJSONIO

Paket ketiga yang terkenal untuk memasukkan file JSON ke R adalah RJSONIO. Sama seperti paket jsonlite dan jsonlite, Anda menggunakan fungsi fromJSON():

library(RJSONIO)
data <- fromJSON("<Path to your JSON file")

Paket JSON Terbaik?

Ada cukup banyak diskusi tentang topik ini. Jika Anda ingin tahu lebih banyak, Anda sebaiknya memeriksa halaman dan pos berikut:

  • halaman ini terutama menawarkan ilustrasi melalui contoh kode yang memberi Anda lebih banyak wawasan tentang perilaku dan kinerja paket JSON di R.
  • Pastikan membaca pos blog ini, yang mencoba mencari tahu paket mana yang paling baik menangani data JSON di R.

Mendapatkan Data dari Perangkat Lunak Statistik ke R

Jika data Anda tidak benar-benar mirip spreadsheet dan bukan file Excel atau JSON, mungkin itu dibuat dengan salah satu dari banyak paket perangkat lunak statistik.

Bagian ini akan memberi Anda lebih banyak cara untuk membaca file SPSS, Stata, atau SAS, sekaligus memberikan ikhtisar pengimporan file dari S-plus dan Epi Info. Pastikan untuk kembali ke pos pertama kami atau tautan yang disediakan di bawah jika Anda ingin informasi lebih lanjut!

Mengimpor File SPSS ke R

Alih-alih menggunakan paket foreign, Anda juga dapat menggunakan paket haven untuk memasukkan file SPSS ke R.

Ingat untuk memastikan memasang dan mengaktifkannya di ruang kerja Anda sebelum memulai!

Paket haven menawarkan fungsi read_spss() untuk membaca file SPSS ke R:

library(haven)
data <- read_spss("<path to your SPSS file>")

Mengimpor File Stata ke R

Serupa dengan paket foreign, paket haven juga menyediakan fungsi untuk membaca file Stata ke R, yaitu read_dta():

data <- read_dta("<path to your STATA file>")

Ingat selalu untuk memasang paket jika perlu dan mengaktifkannya di ruang kerja Anda. Misalnya, Anda dapat memasang dan mengaktifkan paket haven di ruang kerja Anda dengan perintah berikut:

install.packages("haven")
library(haven)

Mengimpor File SAS ke R

Karena paket sas7bdat disebutkan dalam pos terakhir, tutorial lanjutan ini akan fokus pada cara lain untuk membaca file SAS:

1. Cara Mengimpor File SAS XPORT ke R Dengan paket foreign

Paket foreign dengan fungsi read.xport() juga memungkinkan Anda memasukkan file SAS XPORT ke R:

library(foreign)
data <- read.xport("<path to your SAS file>")

2. Cara Mengimpor File SAS XPORT ke R Dengan Paket SASxport

Paket sasXPORT juga memungkinkan membaca file SAS XPORT dengan fungsi read.xport():

library(SASxport)
data <- read.xport("<path to your SAS file>")

3. Cara Mengimpor File SAS ke R Dengan Paket haven

Sama seperti paket foreign dan sas7bdat, paket haven juga memungkinkan Anda membaca file b7dat ke R dengan fungsi read_sas():

library(haven)
data <- read_sas("<path to your SAS file>")

Mengimpor File S-plus ke R

Untuk dataset S-plus lama, yakni yang diproduksi pada Windows versi 3.x, 4.x atau 2000 atau Unix, versi 3.x dengan integer 4 byte, Anda dapat menggunakan fungsi read.S() dari paket foreign:

library(foreign)
data <- read.S("<Path to your file>")

Membaca File Epi Info ke R

Seperti yang mungkin Anda baca dalam tutorial kami sebelumnya atau yang ini, paket foreign menawarkan banyak fungsi untuk membaca file spesifik ke R, dan Epi Info adalah salah satunya. Anda cukup menggunakan fungsi read.epiinfo() untuk memasukkan data Anda ke R:

library(foreign)
data <- read.epiinfo("<Path to your file>")

Untuk informasi lebih lanjut tentang Epi Info, klik di sini.

Mendapatkan Data dari Sumber Lain ke R

Selain sumber umum dan perangkat lunak statistik, ada juga banyak sumber lain dari mana Anda bisa mendapatkan data yang ingin Anda baca ke R.

Beberapa di antaranya tercantum di bawah. Teruskan membaca!

Mengimpor File MATLAB ke R

Anda dapat menggunakan paket R.matlab dengan fungsi readMat() untuk mengimpor file MATLAB ke R.

Anda dapat memberikan string karakter sebagai argumen pertama ke fungsi ini atau memberikan vektor mentah. Pada kasus pertama, masukan Anda akan ditafsirkan sebagai nama file, sementara pada kasus kedua akan dianggap sebagai koneksi biner mentah:

library(R.matlab)
data <- readMat("<Path to your file>")

Fungsi readMat() akan mengembalikan struktur list bernama yang berisi semua variabel dari file MAT yang Anda impor.

Membaca File Octave ke R

Paket foreign hadir lagi! Gunakan fungsi read.octave() untuk mengimpor data teks Octave ke R:

library(foreign)
data <- read.octave("<Path to your file>")

Mendapatkan Data FitbitScraper ke R

Anda dapat menggunakan paket fitbitScraper untuk mendapatkan data dari fitbit.

(Bagi yang belum familiar dengan perusahaannya: perusahaan ini menawarkan produk seperti pelacak aktivitas dan perangkat teknologi lain yang mengukur data pribadi seperti jumlah langkah yang ditempuh atau kualitas tidur.)

Kunjungi di sini untuk tutorial singkat dan praktis tentang cara menggunakan paket fitbitScraper.

Mengimpor Data Quantmod ke R

Anda dapat menggunakan paket ini untuk mengekstrak data keuangan dari sumber Internet dengan R. Fungsi yang Anda gunakan untuk memasukkan data ke R adalah getSymbols(), seperti pada contoh ini:

library(quantmod)
data <- getSymbols("YHOO", src="google")

Catatan bahwa pertama Anda menentukan vektor karakter dengan nama setiap simbol yang akan dimuat. Dalam kasus ini, yaitu "YHOO". Lalu, Anda mendefinisikan metode sumber. Metode sumber yang tersedia saat ini adalah yahoo, google, MySQL, FRED, csv, RData, dan oanda.

Berikutnya, Anda menentukan parameter lookup dan menyimpannya untuk sesi mendatang:

setSymbolLookup(YHOO='google',GOOG='yahoo')
saveSymbolLookup(file="mysymbols.rda")

Sesi baru kemudian memanggil

loadSymbolLookup(file="mysymbols.rda")
getSymbols(c("YHOO","GOOG"))

Jika Anda ingin informasi lebih lanjut tentang aplikasi keuangan kuantitatif di R, klik di sini atau buka halaman ini untuk tutorial terperinci bagi pemula tentang bekerja dengan quantmod.

Mendapatkan File ARFF ke R

Data dari file Attribute-Relation File Format (ARFF) Weka dapat dibaca dengan fungsi read.arff():

library(foreign)
data <- read.arff("<Path to your file>")

Untuk informasi lebih lanjut tentang fungsi ini, buka halaman ini.

Catatan bahwa paket RWeka juga menawarkan fungsi yang sama untuk mengimpor file ARFF. Kunjungi di sini jika Anda ingin tahu lebih banyak!

Mengimpor Data dari Basis Data ke R

Selain MonetDB.R, rmongodb dan RMySQL, yang dibahas pada pos sebelumnya, Anda juga memiliki paket lain untuk terhubung dengan basis data Anda di R.

Anda juga memiliki mongolite, RMongo, RODBC, ROracle, RPostgreSQL, RSQLite, RJDBC.

Untuk tutorial tentang paket-paket ini, lihat daftar berikut:

Catatan bahwa ada juga paket antarmuka basis data DBI yang memungkinkan komunikasi antara R dan sistem manajemen basis data relasional. Untuk informasi lebih lanjut, klik di sini.

Beberapa penjelasan tentang cara bekerja dengan paket ini dapat ditemukan di sini.

Mengimpor File Biner ke R

File data biner berisi informasi yang disimpan dalam kelompok digit biner. Setiap digit biner adalah nol atau satu. Delapan digit biner yang dikelompokkan bersama membentuk satu byte. Anda dapat membaca data biner dengan fungsi readBin():

connection <- file("<path to your file>", "rb") #You open the connection as "reading binary"(rb)
data <- readBin(connection,
                what="numeric") #Mode of the vector to be read

Untuk contoh yang lebih detail, buka halaman ini. Untuk informasi lebih lanjut tentang fungsi readBin(), klik di sini.

Membaca Format Data Biner ke R

Paket hdf5, h5r, rhdf5, RNetCDF, ncdf dan ncdf4 menyediakan antarmuka ke file data HDF5 milik NASA dan netCDF milik UCAR.

Bagi Anda yang tertarik dengan tutorial cara bekerja dengan file HDF5 atau netCDF di R, pertimbangkan untuk memeriksa sumber berikut:

  • Anda dapat menemukan tutorial yang sangat baik tentang bekerja dengan file HDF di R, juga menggunakan paket pathfinder di sini;
  • Tutorial yang mudah diakses untuk pemula tentang netCDF di R dapat ditemukan di halaman ini.

Mengimpor File DBF Anda ke R

DBF atau DataBase File adalah format dasar dari dBase. Anda dapat membaca file DBF dengan menggunakan paket foreign, yang menawarkan fungsi read.dbf():

library(foreign)
data <- read.dbf("<Path to your file>")

Catatan bahwa jika Anda menggunakan Windows, Anda juga dapat menggunakan paket RODBC dengan fungsi odbcConnectDbase() untuk membaca file DBF melalui driver ODBC dBase milik Microsoft.

Mengimpor Flat Contingency Table ke R

Paket foreign memungkinkan Anda membaca banyak format file; 'Flat' contingency table bukan pengecualian. Anda dapat menggunakan fungsi read.ftable() untuk melakukannya:

library(foreign)
data <- read.ftable("<Path to your file>")

Ingat bahwa contingency table “datar” sangat mirip dengan contingency table “biasa”: tabel tersebut berisi jumlah dari setiap kombinasi level variabel (faktor) yang terlibat. Namun, informasi ini disusun ulang sebagai matriks yang baris dan kolomnya sesuai dengan kombinasi unik level variabel baris dan kolom. Contingency table “datar” oleh karena itu sering lebih disukai untuk merepresentasikan contingency table berdimensi lebih tinggi.

Membaca File Sistem Informasi Geografis (GIS) ke R

Anda dapat menggunakan paket rgdal dan raster, di antaranya, untuk memasukkan file GIS Anda ke R.

Jika Anda tidak yakin bagaimana memulai menggunakan paket rgdal, pertimbangkan untuk memeriksa pos blog yang bagus ini, yang memperkenalkan Anda pada pekerjaan dengan data geospasial di R.

Anda juga dapat memeriksa tutorial ini, yang bekerja dengan rgdal serta raster.

Mengimpor Tabel Integrated Taxonomical Information (ITIS) ke R

Anda dapat mengimpor tabel ITIS dengan fungsi read.table():

data <- read.table("<Path to your file>")

Untuk informasi lebih lanjut tentang ITIS, klik di sini.

Mengimpor Set Data Besar ke R

Mengimpor set data besar sering menimbulkan diskusi di antara pengguna R. Selain paket yang dimaksudkan untuk terhubung dengan basis data, ada juga beberapa lainnya yang menonjol saat bekerja dengan big data.

Mengimpor Set Data Besar ke R dengan Paket data.table

Didsekripsikan sebagai “fast and friendly file finagler”, paket populer data.table sangat berguna dan mudah digunakan. Fungsi fread()-nya ditujukan untuk mengimpor data dari file berpembatas reguler langsung ke R, tanpa jalan memutar atau kerumitan.

Catatan bahwa “reguler” dalam kasus ini berarti setiap baris data Anda harus memiliki jumlah kolom yang sama. Contoh:

  V1 V2 V3
1  1  6  a
2  2  7  b
3  3  8  c
4  4  9  d
5  5 10  e

Salah satu hal hebat tentang fungsi ini adalah semua kontrol, yang diekspresikan dalam argumen seperti sep, colClasses dan nrows terdeteksi secara otomatis. Juga, tipe bit64::integer64 juga terdeteksi dan dibaca langsung tanpa perlu dibaca sebagai karakter sebelum dikonversi.

Ingat bahwa tipe bit64::integer64 adalah integer 64 bit: angka-angka ini disimpan di komputer sepanjang 64 bit. Secara default, ini hanya 32 bit. Karena tipe bit64::integer64 terdeteksi, sistem tahu itu angka dan tidak dibaca sebagai karakter untuk kemudian dikonversi menjadi integer.

Contoh fungsi fread() adalah:

library(data.table)
data <- fread("http://assets.datacamp.com/blog_assets/chol.txt")
data
##      AGE HEIGHT WEIGHT CHOL  SMOKE BLOOD  MORT
##   1:  20    176     77  195 nonsmo     b alive
##   2:  53    167     56  250 sigare     o  dead
##   3:  44    170     80  304 sigare     a  dead
##   4:  37    173     89  178 nonsmo     o alive
##   5:  26    170     71  206 sigare     o alive
##  ---
## 196:  35    174     57  222   pipe     a alive
## 197:  38    172     91  227 nonsmo     b alive
## 198:  26    170     60  167 sigare     a alive
## 199:  39    165     74  259 sigare     o alive
## 200:  49    178     81  275   pipe     b alive

Catatan bahwa membaca data Anda dengan fungsi fread() mengembalikan sebuah data table:

str(data)
## Classes 'data.table' and 'data.frame':   200 obs. of  7 variables:
##  $ AGE   : int  20 53 44 37 26 41 39 28 33 39 ...
##  $ HEIGHT: int  176 167 170 173 170 165 174 171 180 166 ...
##  $ WEIGHT: int  77 56 80 89 71 62 75 68 100 74 ...
##  $ CHOL  : int  195 250 304 178 206 284 232 152 209 150 ...
##  $ SMOKE : chr  "nonsmo" "sigare" "sigare" "nonsmo" ...
##  $ BLOOD : chr  "b" "o" "a" "o" ...
##  $ MORT  : chr  "alive" "dead" "dead" "alive" ...
##  - attr(*, ".internal.selfref")=<externalptr>

Ini berbeda dari read.table(), yang membuat data frame dari data Anda.

Anda dapat menemukan lebih banyak tentang perbedaan antara data frame dan data table yang dijelaskan di sini. Singkatnya, hal terpenting adalah mengetahui bahwa semua data.table juga merupakan data.frame: data.table juga data.frame. Sebuah data.table dapat diteruskan ke paket apa pun yang hanya menerima data.frame dan paket itu dapat menggunakan sintaks [.data.frame pada data.table. Baca lebih lanjut tentang data.table di sini.

library(data.table)
data <- fread("http://assets.datacamp.com/blog_assets/chol.txt",
              sep=auto,
              nrows = -1,
              na.strings = c("NA","N/A",""),
              stringsAsFactors=FALSE
              )

Catatan bahwa masukan juga bisa berupa file yang ingin Anda baca dan tidak selalu harus berupa URL. Juga, perhatikan bagaimana banyak argumennya sama dengan yang Anda gunakan di read.table(), misalnya.

Tip: ingin tahu lebih banyak tentang data.table? Mungkin kursus kami tentang Data Analysis In R, The data.table Way bisa menarik bagi Anda! Dengan bimbingan Matt Dowle dan Arun Srinivasan, Anda akan beralih dari pemula data.table menjadi ahli data.table dalam waktu singkat.

Mengimpor Set Data Besar ke R dengan Paket ff

Paket ff memungkinkan “penyimpanan yang efisien memori untuk data besar di disk dan fungsi akses cepat”. Ini adalah salah satu solusi yang sering muncul saat Anda menelusuri diskusi yang membahas pembacaan big data sebagai data frame, seperti di sini.

Jika Anda ingin mengimpor file datar terpisah ke data frame ff, Anda dapat menggunakan fungsi read.table.ffdf(), read.csv.ffdf(), read.csv2.ffdf(), read.delim.ffdf() atau read.delim2.ffdf(), mirip dengan fungsi read.table() dan variannya atau pembungkus praktis, yang dijelaskan dalam salah satu pos kami sebelumnya:

bigdata <- read.table.ffdf(file="<Path to file>",
                           nrows=n)

Catatan bahwa argumen pertama Anda bisa NULL (seperti pada kasus ini) atau dapat menunjuk objek ffdf opsional tempat catatan yang dibaca ditambahkan. Jika ingin tahu lebih lanjut, silakan menuju di sini. Kemudian, Anda menamai file dari mana data dibaca dengan argumen file. Anda juga dapat menentukan jumlah maksimum baris yang akan dibaca dengan nrows (yang sama seperti yang Anda lakukan dengan read.table()!).

Anda juga dapat melangkah lebih jauh dan menentukan encoding file, level atau nama fungsi yang dipanggil untuk membaca setiap potongan:

library(ff)
bigdata <- read.table.ffdf(file="<Path to file>",
                           nrows=n,
                           fileEncoding="",
                           levels=NULL,
                           FUN="read.table")

Tip argumen lain yang dapat Anda tambahkan ke fungsi read.table.ffdf(), read.csv.ffdf(), read.csv2.ffdf(), read.delim.ffdf() atau read.delim2.ffdf() dapat ditemukan di sini.

Mengimpor Set Data Besar ke R dengan bigmemory

Paket lain yang sering muncul dalam hasil pencarian untuk kueri terkait set data besar di R adalah paket bigmemory. Paket ini memungkinkan Anda “mengelola matriks masif dengan shared memory dan file yang dipetakan ke memori”.

Catatan bahwa Anda tidak dapat menggunakan paket ini di Windows: tidak tersedia binary Windows.

library(bigmemory)
bigdata <- read.big.matrix(filename="<File name>",
                           sep="",
                           header=TRUE,
                           skip=2)

Seperti biasa, Anda terlebih dahulu memberikan nama file ke fungsi, lalu Anda dapat mulai menentukan hal lain, seperti simbol pemisah, header atau jumlah baris yang akan dilewati sebelum mulai membaca file dengan argumen sep, header dan skip masing-masing.

Catatan bahwa ini hanya beberapa contoh! Anda dapat memberikan jauh lebih banyak argumen ke fungsi read.big.matrix()! Pertimbangkan untuk membaca dokumentasinya jika Anda ingin tahu lebih banyak.

Membaca Set Data Besar ke R dengan Paket sqldf

Paket sqldf juga merupakan salah satu paket yang mungkin Anda pertimbangkan saat bekerja dengan set data besar. Paket ini memungkinkan Anda “melakukan seleksi SQL di R”, dan terutama fungsi read.csv.sql() sangat berguna jika Anda ingin membaca file ke R sambil memfilternya dengan pernyataan SQL. Dengan begitu, hanya sebagian data yang diproses oleh R:

library(sqldf)
bigdata <- read.csv.sql(file="<Path to your file>",
                        sql="select * from file where ...",
                        colClasses=c("character",
                                     rep("numeric",10)))

Catatan bahwa contoh di atas sangat mirip dengan fungsi lain yang memungkinkan Anda mengimpor set data besar ke R, dengan satu-satunya perbedaan bahwa argumen kedua yang Anda berikan ke fungsi read.csv.sql() adalah pernyataan SQL. Tabel yang Anda rujuk dalam kueri SQL merupakan bagian dari file yang Anda sebutkan dalam argumen file dari read.csv.sql().

Tip: untuk informasi lebih lanjut tentang cara bekerja dengan sqldf, Anda dapat menuju ke sini untuk tutorial video atau ke sini untuk ikhtisar tertulis mengenai dasar-dasarnya.

Mengimpor Set Data Besar ke R dengan Fungsi read.table()

Anda dapat menggunakan fungsi “standar” read.table() untuk mengimpor data Anda, tetapi ini mungkin memakan waktu lebih lama dibanding paket lain yang dirancang khusus untuk bekerja lebih baik dengan set data yang lebih besar. Untuk melihat cara kerja fungsi read.table(), kembali ke pos pertama kami.

Untuk membuat fungsi ini berjalan sedikit lebih cepat, Anda dapat menyetelnya sendiri untuk mendapatkan fungsi read.table() yang dioptimalkan. Penyetelan ini sebenarnya hanya terdiri dari menambahkan argumen ke fungsi read.table() biasa, seperti ini:

df <- read.table("<Path to your file>",
                 header = FALSE,
                 sep="",
                 quote = "",
                 na.strings = "EMPTY",
                 colClasses = c("character", "numeric", "factor"),
                 strip.white = TRUE,
                 comment.char="",
                 stringsAsFactors = FALSE,
                 nrows = n
                 )

Catatan bahwa

  • Anda pertama-tama memberikan (path ke) file Anda, tergantung apakah Anda telah mengatur direktori kerja ke folder tempat file berada atau tidak.
  • Kemudian, Anda menggunakan argumen header untuk menunjukkan apakah file berisi nama variabel sebagai baris pertama. Ini tidak terjadi pada contoh di atas.
  • Karakter pemisah field diatur sebagai / dengan argumen sep; Ini berarti nilai pada setiap baris file dipisahkan oleh karakter ini.
  • Berikutnya, Anda juga dapat memilih untuk menonaktifkan atau mengaktifkan quoting. Dalam kasus ini, karena quote="", Anda menonaktifkan quoting.
  • Anda juga mendefinisikan bahwa string “EMPTY” dalam dataset Anda ditafsirkan sebagai nilai NA.
  • Kemudian, Anda juga mendefinisikan kelas kolom Anda: dalam kasus ini, Anda menunjukkan bahwa kolom pertama adalah kolom karakter, yang kedua numerik, dan yang terakhir faktor.
  • Dengan strip.white Anda mengizinkan penghapusan spasi putih di awal dan akhir dari field karakter yang tidak di-quote; Ini hanya berlaku ketika Anda telah menggunakan argumen sep!
  • Ketika comment.char diatur sebagai "", Anda mematikan interpretasi komentar.
  • Anda tidak ingin karakter dikonversi menjadi faktor! Itulah mengapa Anda juga telah mendefinisikan colClasses. Anda menegaskannya dengan menyetel stringsAsFactors ke FALSE.
    Tip: argumen ini, bersama dengan colClasses dan comment.char, mungkin salah satu yang lebih penting jika Anda ingin mengimpor data dengan mulus!
  • Terakhir, Anda menetapkan jumlah maksimum baris untuk dibaca.

Tip: jika Anda ingin informasi lebih lanjut tentang semua argumen yang dapat Anda berikan ke fungsi read.table(), Anda sebaiknya mempertimbangkan membaca pos kami tentang membaca file Excel ke R.

Mengimpor Set Data Besar ke R dengan Paket readr

Salah satu paket yang lebih cepat yang dapat Anda gunakan untuk mengimpor set data besar Anda ke R adalah paket readr, yang memungkinkan Anda membaca data teks tabular, seperti read.table. Namun, paket readr menawarkan “sejumlah fungsi pengganti yang menyediakan fungsionalitas tambahan dan jauh lebih cepat” (lihat di sini).

df <- read_table("<Path to your file>",
                 col_names=TRUE)

Catatan bahwa paket readr juga menawarkan fungsi read_csv(), read_csv2(), read_delim(), read_fwf(), read_tsv() dan banyak fungsi lain yang berjalan lebih cepat daripada versi aslinya! Detail dapat ditemukan di sini.

Tip: informasi lebih lanjut tentang paket ini dapat ditemukan di halaman GitHub ini.

Beberapa Catatan Tentang Menangani Big Data di R

Untuk tip lebih lanjut tentang menangani big data di R, Anda sebaiknya melihat diskusi StackOverflow ini, yang membahas paket tetapi juga tip seperti menyimpan data Anda dalam format biner dan penggunaan saveRDS/readRDS atau paket rhdf5 untuk format HDF5.

Catatan bahwa format file terakhir ini telah dibahas di atas dan bahwa banyak paket lain ada selain yang telah dibahas. Misalnya, paket yang digunakan untuk terhubung dengan basis data, seperti RODBC dan MonetDB.R, juga dapat dengan mudah digunakan untuk menangani set data yang lebih besar dan paket dplyr juga terbukti berguna saat Anda ingin bekerja langsung dengan data yang disimpan di beberapa jenis basis data.

Tip: tertarik memanipulasi data di R? Maka kursus interaktif kami tentang dplyr mungkin cocok untuk Anda! Dengan bimbingan Garrett Grolemund, Anda akan belajar melakukan tugas manipulasi data tingkat lanjut menggunakan dplyr.

Pastikan juga memeriksa pos menarik ini, yang menguji performa pemuatan beberapa paket yang disebutkan di atas!

Memasukkan Data Anda ke R dengan Paket rio

“Pisau serbaguna untuk Input/Output data” ini memudahkan Anda melakukan input dan output data ke R! Anda dapat melakukan in- atau out-put data dari hampir semua format file: saat Anda memasang paket rio, Anda menarik banyak paket pembaca data terpisah menjadi satu. Jika kemudian Anda ingin melakukan input atau output data, Anda hanya perlu mengingat dua fungsi: import() dan export(): rio akan bergantung pada paket pembaca data terpisah untuk menyimpulkan struktur data dari ekstensi file, membaca sumber data berbasis web secara native, dan menetapkan default yang wajar untuk impor dan ekspor.

Singkatnya, rio mendukung serangkaian luas tipe file yang umum digunakan untuk impor dan ekspor.

Mengimpor file Anda dengan rio dilakukan dengan cara berikut:

library(rio)
data <- import("<Path to your file>")

Jika Anda ingin melihat format file apa saja yang didukung oleh rio, kunjungi halaman ini.

Penutup

Jika Anda tertarik mempelajari lebih banyak tentang bekerja dengan big data di R, pastikan memeriksa kursus How To Work With Quandl in R dan “Big Data Analysis With Revolution R Enterprise” di DataCamp!

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Spaghetti Plot dan Jalur Badai