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.

Bacaxl_Contoh

Untuk memeriksa lokasi spreadsheet bernama clippy.xls, gunakan sederhana

readxl_example("geometry.xls")

Bacaxl_Contoh

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

  1. Gunakan argumen n_max untuk mengembalikan n baris
  2. 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)

Excel_Sheet

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

Excel_Sheet

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.

Excel_Sheet

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

Excel_Sheet

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)

Excel_Sheet

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

  1. jumlah
  2. 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")