Impor Data di R: Baca File CSV, Excel, SPSS, Stata, SAS
โก Ringkasan Cerdas
Mengimpor Data di R mencakup membaca file CSV dengan read.csv(), buku kerja Excel dengan readxl, dan file SAS, STATA, atau SPSS dengan haven. Panduan ini juga menunjukkan cara memilih lembar kerja, baris, dan rentang sel secara tepat saat impor.

Data bisa ada dalam berbagai format. Untuk setiap format R mempunyai fungsi dan argumen tertentu. Tutorial ini menjelaskan cara mengimpor data ke R.
Membaca File CSV
Format data yang paling banyak digunakan adalah .csv, nilai yang dipisahkan koma. R memuat serangkaian pustaka selama proses startup, termasuk paket utils. Paket tersebut menyediakan read.csv(), cara standar untuk membuka file CSV. Berikut sintaksnya:
read.csv(file, header = TRUE, sep = ",")
Argumen:
- fillet: PATH tempat file disimpan
- Header: konfirmasi apakah file memiliki header atau tidak, secara default header disetel ke TRUE
- September: simbol yang digunakan untuk membagi variabel. Secara default, `,`.
Kita akan membaca nama file data mtcats. File csv disimpan online. Jika file .csv Anda disimpan secara lokal, Anda dapat mengganti PATH di dalam cuplikan kode. Jangan lupa bungkus di dalam ' '. PATH harus berupa nilai string.
Untuk pengguna mac, path untuk folder download adalah:
"/Users/USERNAME/Downloads/FILENAME.csv"
Untuk pengguna windows:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Perhatikan bahwa, kita harus selalu menentukan ekstensi nama file.
- . CSV
- . Xlsx
- . Txt
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
Keluaran:
## [1] 12
class(df$X)
Keluaran:
## [1] "factor"
Pada versi R sebelum 4.0.0, read.csv() mengkonversi setiap kolom karakter menjadi faktor, itulah sebabnya class(df$X) mengembalikan โfaktorโ di atas. Anda dapat menonaktifkannya dengan stringsAsFactors = FALSE.
โ ๏ธ Catatan versi: sejak R 4.0.0 Nilai defaultnya adalah stringsAsFactors = FALSE, sehingga kolom karakter tetap berupa karakter dan contoh pertama sekarang mengembalikan "karakter" pada instalasi modern. Meneruskan argumen secara eksplisit, seperti di bawah ini, memberikan hasil yang sama pada setiap versi dan merupakan kebiasaan yang paling aman.
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
Keluaran:
## [1] "character"
Kelas untuk variabel X sekarang menjadi karakter.
read.csv() vs read_csv(): Mana yang Sebaiknya Anda Gunakan?
Fungsi read_csv() sudah termasuk dalam R dasar dan tidak memerlukan paket tambahan. Paket readr menambahkan fungsi read_csv(), yang lebih cepat dan mengurangi pengambilan keputusan otomatis.
| Kriteria | read.csv() (utils) | read_csv() (readr) |
|---|---|---|
| Paket yang dibutuhkan | None | pembaca |
| Kecepatan pada file berukuran besar | Lebih lambat | Beberapa kali lebih cepat |
| Pengembalian | bingkai data | tibble |
| Nama kolom | Spasi diubah menjadi titik | Disimpan persis seperti yang tertulis. |
| Deteksi tipe | Diam | Dilaporkan dalam spesifikasi kolom |
library(readr) df <- read_csv(PATH) # For very large files, data.table::fread() is faster still library(data.table) df <- fread(PATH)
Gunakan read.csv() untuk file kecil dan skrip yang harus dijalankan tanpa paket tambahan. Gunakan read_csv() ketika file berukuran besar atau ketika mempertahankan nama kolom yang tepat itu penting.
Membaca File Excel
Excel file sangat populer di kalangan analis data. Spreadsheet mudah digunakan dan fleksibel. R dilengkapi dengan perpustakaan readxl untuk mengimpor spreadsheet Excel.
Gunakan kode ini
require(readxl)
untuk memeriksa apakah readxl diinstal di mesin Anda. Jika Anda menginstal r dengan r-conda-essential, perpustakaan sudah diinstal. Anda akan melihat di jendela perintah:
Keluaran:
Loading required package: readxl.
Jika paket tersebut belum terpasang, Anda dapat memasangnya dengan conda. perpustakaan atau di terminal, gunakan conda install -c mittner r-readxl.
Gunakan perintah berikut untuk memuat perpustakaan guna mengimpor file excel.
library(readxl)
bacaxl_contoh()
Kami menggunakan contoh yang disertakan dalam paket readxl selama tutorial ini.
Gunakan kode
readxl_example()
untuk melihat semua spreadsheet yang tersedia di perpustakaan.
Untuk memeriksa lokasi spreadsheet tertentu, masukkan namanya:
readxl_example("geometry.xls")
Jika Anda menginstal R dengan conda, spreadsheet terletak di Anaconda3/lib/R/library/readxl/extdata/filename.xls
baca_excel()
Fungsi read_excel() membuka ekstensi .xls dan .xlsx serta memilih parser yang tepat secara otomatis.
Sintaksnya adalah:
read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE) arguments: -PATH: Path where the excel is located -sheet: Select the sheet to import. By default, all -range: Select the range to import. By default, all non-null cells -col_names: Select the columns to import. By default, all non-null columns
Kita dapat mengimpor spreadsheet dari perpustakaan readxl dan menghitung jumlah kolom di lembar pertama.
# Store the path of `datasets.xlsx` example <- readxl_example("datasets.xlsx") # Import the spreadsheet df <- read_excel(example) # Count the number of columns length(df)
Keluaran:
## [1] 5
excel_sheet()
File datasets.xlsx terdiri dari 4 lembar. Kita bisa mengetahui sheet mana saja yang tersedia di workbook dengan menggunakan fungsi excel_sheets()
example <- readxl_example("datasets.xlsx")
excel_sheets(example)
Keluaran:
[1] "iris" "mtcars" "chickwts" "quakes"
Jika lembar kerja berisi banyak lembar, mudah untuk memilih lembar tertentu dengan menggunakan argumen lembar. Kita dapat menentukan nama sheet atau indeks sheet. Kita dapat memverifikasi apakah kedua fungsi mengembalikan keluaran yang sama dengan identik().
example <- readxl_example("datasets.xlsx") quake <- read_excel(example, sheet = "quakes") quake_1 <-read_excel(example, sheet = 4) identical(quake, quake_1)
Keluaran:
## [1] TRUE
Kita dapat mengontrol sel mana yang akan dibaca dengan 2 cara
- Gunakan argumen n_max untuk mengembalikan n baris
- Gunakan argumen rentang yang dikombinasikan dengan cell_rows atau cell_cols
Misalnya, kita menetapkan n_max sama dengan 5 untuk mengimpor lima baris pertama.
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Jika kita mengubah col_names menjadi FALSE, R akan membuat header secara otomatis.
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
Dalam data frame iris_no_header, readxl menghasilkan lima nama placeholder. Versi lama menghasilkan X__1 hingga X__5, sedangkan versi saat ini menghasilkan โฆ1 hingga โฆ5.
Kita juga dapat menggunakan rentang argumen untuk memilih baris dan kolom di spreadsheet. Pada kode di bawah ini, kita menggunakan style excel untuk memilih rentang A1 hingga B5.
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
Keluaran:
## [1] 4 2
example_1 mengembalikan 4 baris dan 2 kolom. Rentang A1:B5 mencakup lima baris spreadsheet, tetapi baris pertama digunakan sebagai header, itulah sebabnya dimensinya adalah 4 kali 2.
Pada contoh kedua, kita menggunakan fungsi cell_rows() yang mengontrol rentang baris yang akan dikembalikan. Jika kita ingin mengimpor baris 1 hingga 5, kita dapat mengatur cell_rows(1:5). Perhatikan bahwa, cell_rows(1:5) mengembalikan output yang sama dengan cell_rows(5:1).
# Read rows 1 to 5 example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE) dim(example_2)
Keluaran:
## [1] 4 5
example_2, sebaliknya, berukuran 4 x 5. cell_rows(1:5) sekali lagi memperlakukan baris pertama sebagai header, sehingga empat baris data dikembalikan di kelima kolom.
Jika kita ingin mengimpor baris yang tidak dimulai dari baris pertama, kita harus menyertakan col_names = FALSE. Jika kita menggunakan range = cell_rows(2:5), terlihat jelas bahwa frame data kita tidak memiliki header lagi.
iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE) iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)
Anda juga dapat memilih kolom berdasarkan huruf, persis seperti di Excel:
# Select columns A and B col <- read_excel(example, range = cell_cols("A:B")) dim(col)
Keluaran:
## [1] 150 2
Catatan : range = cell_cols(โA:Bโ), mengembalikan output semua sel dengan nilai bukan nol. Kumpulan data berisi 150 baris, oleh karena itu, read_excel() mengembalikan baris hingga 150. Ini diverifikasi dengan fungsi dim().
Argumen `na` memberi tahu `read_excel()` nilai mana yang harus dianggap sebagai nilai yang hilang. Hitung nilainya dengan `sum()` dan `is.na()`:
- jumlah
- adalah.na
Ini kodenya
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
Keluaran:
## [1] 50
Kami memiliki 50 nilai yang hilang, yang merupakan baris milik spesies setosa.
Impor Data dari Perangkat Lunak Statistik Lainnya
Berkas dari paket statistik lain diimpor dengan cara berikut: surga paket, yang mendukung SAS, STATA dan SPSS. Kita dapat menggunakan fungsi berikut untuk membuka berbagai jenis dataset, sesuai dengan ekstensi file:
- SAS: baca_sas()
- STATA: read_dta() (atau read_stata(), yang identik)
- SPSS: read_sav() atau read_por(). Kita perlu memeriksa ekstensinya
Masing-masing fungsi ini hanya membutuhkan satu argumen, yaitu PATH tempat file disimpan, dan masing-masing menerima sebuah URL semudah jalan setapak lokal.
library(haven)
surga datang dengan conda r-essential jika tidak pergi ke link atau di terminal conda install -c conda-forge r-haven
Membaca File SAS
Sebagai contoh, kami akan menggunakan dataset penerimaan dari IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
Keluaran:
## # A tibble: 6 x 4 ## ADMIT GRE GPA RANK ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Membaca File STATA
Untuk file data STATA Anda dapat menggunakan read_dta(). Kami menggunakan kumpulan data yang persis sama tetapi menyimpannya dalam file .dta.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
Keluaran:
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Membaca File SPSS
Fungsi read_sav() membuka file SPSS yang memiliki ekstensi .sav.
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
Keluaran:
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Praktik Terbaik untuk Impor Data
Menjalankan daftar periksa di bawah ini sebelum mengimpor akan menghemat sebagian besar pekerjaan pembersihan setelahnya:
- Format umum untuk spreadsheet adalah menggunakan baris pertama sebagai header (biasanya nama variabel).
- Hindari spasi kosong dalam nama file atau kolom, karena spasi dapat dibaca sebagai pemisah kolom. Gunakan garis bawah sebagai gantinya.
- Nama pendek lebih disukai
- Jangan menggunakan simbol dalam nama. Tulis exchange_rate_dollar_euro, bukan exchange_rate_$_โฌ.
- Ganti nilai yang hilang dengan NA, bukan dengan spasi kosong, tanda hubung, atau angka sentinel seperti -99, yang jika tidak diganti harus dibersihkan setelahnya.
Mengimpor Data di R: Referensi Fungsi
Tabel di bawah ini mencantumkan fungsi impor untuk setiap jenis file, pustaka yang menyediakannya, dan argumen default-nya:
| Perpustakaan | Tujuan | fungsi | Argumen Default |
|---|---|---|---|
| utilitas | Baca file CSV | baca.csv() | berkas, header = TRUE, sep = โ,โ |
| bacaxl | Baca file EXCEL | baca_excel() | jalur, rentang = NULL, nama_kolom = BENAR |
| surga | Baca file SAS | baca_sas() | path |
| surga | Baca file STATA | read_dta() / read_stata() | path |
| surga | Baca file SPSS | baca_sav() | path |
Tabel kedua menunjukkan cara mengimpor pilihan dengan read_excel():
| fungsi | Tujuan | kasus |
|---|---|---|
| baca_excel() | Baca n jumlah baris | n_maks = 10 |
| Pilih baris dan kolom seperti di excel | rentang = โA1:D10โ | |
| Pilih baris dengan indeks | rentang= baris_sel(1:3) | |
| Pilih kolom dengan huruf | rentang = sel_cols("A:C") |







