Impor Data di R: Baca File CSV, Excel, SPSS, Stata, SAS
Data bisa ada dalam berbagai format. Untuk setiap format R mempunyai fungsi dan argumen tertentu. Tutorial ini menjelaskan cara mengimpor data ke R.
Baca CSV
Salah satu tempat penyimpanan data yang paling banyak digunakan adalah format file .csv (comma-separated value). R memuat array perpustakaan selama start-up, termasuk paket utils. Paket ini berguna untuk membuka file csv yang dikombinasikan dengan fungsi reading.csv(). Berikut adalah sintaks untuk read.csv
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"
R, secara default, mengembalikan nilai karakter sebagai Faktor. Kita dapat mematikan pengaturan ini dengan menambahkan stringsAsFactors = FALSE.
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.
Baca 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 tidak keluar, Anda dapat menginstalnya 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 bernama clippy.xls, gunakan sederhana
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() sangat berguna saat membuka ekstensi xls dan xlsx.
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 bingkai data iris_no_header, R membuat lima variabel baru bernama X__1, X__2, X__3, X__4 dan X__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
Kita dapat melihat bahwa example_1 mengembalikan 4 baris dengan 2 kolom. Dataset tersebut memiliki header, sehingga alasan dimensinya adalah 4×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
Namun example_2 adalah matriks 4×5. Dataset iris memiliki 5 kolom dengan header. Kami mengembalikan empat baris pertama dengan header semua 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)
We can select the columns with the letter, like in 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().
read_excel() mengembalikan NA ketika simbol tanpa nilai numerik muncul di sel. Kita dapat menghitung jumlah nilai yang hilang dengan kombinasi dua fungsi
- 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
Kami akan mengimpor format file yang berbeda dengan paket surga. Dukungan paket ini SAS, perangkat lunak STATA dan SPSS. Kita dapat menggunakan fungsi berikut untuk membuka berbagai jenis kumpulan data, 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
Hanya satu argumen yang diperlukan dalam fungsi ini. Kita perlu mengetahui PATH dimana file tersebut disimpan. Itu saja, kami siap membuka semua file dari SAS, STATA dan SPSS. Ketiga fungsi ini juga menerima URL.
library(haven)
surga datang dengan conda r-essential jika tidak pergi ke link atau di terminal conda install -c conda-forge r-haven
Baca 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
Baca 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
Baca SPSS
Kami menggunakan fungsi read_sav() untuk membuka file SPSS. Ekstensi file “.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
Bila kita ingin mengimpor data ke R, ada baiknya untuk menerapkan daftar periksa berikut. Ini akan memudahkan untuk mengimpor data dengan benar ke R:
- Format umum untuk spreadsheet adalah menggunakan baris pertama sebagai header (biasanya nama variabel).
- Hindari memberi nama kumpulan data dengan spasi kosong; itu dapat menyebabkan interpretasi sebagai variabel terpisah. Alternatifnya, lebih suka menggunakan '_' atau '-.'
- Nama pendek lebih disukai
- Jangan sertakan simbol dalam nama: yaitu: exchange_rate_$_€ salah. Lebih suka menamainya: exchange_rate_dollar_euro
- Gunakan NA untuk nilai yang hilang; jika tidak; kita perlu membersihkan formatnya nanti.
Ringkasan
Tabel berikut merangkum fungsi yang digunakan untuk mengimpor berbagai jenis file di R. Kolom pertama menyatakan pustaka yang terkait dengan fungsi tersebut. Kolom terakhir merujuk pada argumen default.
Perpustakaan | Tujuan | fungsi | Argumen Default |
---|---|---|---|
utilitas | Baca file CSV | baca.csv() | file, header =, BENAR, sep = “,” |
bacaxl | Baca file EXCEL | baca_excel() | jalur, rentang = NULL, nama_kolom = BENAR |
surga | Baca file SAS | baca_sas() | path |
surga | Baca file STATA | baca_stata() | path |
surga | Baca file SPSS | baca_sav() | path |
Tabel berikut menunjukkan berbagai cara untuk mengimpor pilihan dengan fungsi 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") |