Data bisa ada dalam berbagai format. Untuk setiap format R memiliki fungsi dan argumen tertentu. Tutorial ini menjelaskan cara mengimpor data ke R.
Dalam tutorial ini, Anda akan belajar
- Baca CSV
- Baca file Excel
- readxl_example ()
- read_excel ()
- excel_sheets ()
- Impor data dari perangkat lunak Statistik lainnya
- Baca sas
- Baca STATA
- Baca SPSS
- Praktik terbaik untuk Impor Data
Baca CSV
Salah satu penyimpanan data yang paling banyak adalah format file .csv (nilai dipisahkan koma). R memuat array pustaka selama start-up, termasuk paket utils. Paket ini nyaman untuk membuka file csv yang digabungkan dengan fungsi reading.csv (). Berikut adalah sintaks untuk read.csv
read.csv(file, header = TRUE, sep = ",")
Argumen :
- file : PATH tempat file disimpan
- header : konfirmasi apakah file memiliki header atau tidak, secara default, header disetel ke TRUE
- sep : simbol yang digunakan untuk membagi variabel. Secara default, `,`.
Kami akan membaca nama file data mtcats. File csv disimpan secara online. Jika file .csv Anda disimpan secara lokal, Anda dapat mengganti PATH di dalam cuplikan kode. Jangan lupa untuk membungkusnya di dalam ''. PATH harus berupa nilai string.
Untuk pengguna mac, jalur untuk folder unduhan adalah:
"/Users/USERNAME/Downloads/FILENAME.csv"
Untuk pengguna windows:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Perhatikan bahwa, kami 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 Factor. 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
File Excel sangat populer di kalangan analis data. Spreadsheet mudah digunakan dan fleksibel. R dilengkapi dengan library 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, pustaka sudah diinstal. Anda akan melihat di jendela perintah:
Keluaran:
Loading required package: readxl.
Jika paket tidak keluar, Anda dapat menginstalnya dengan pustaka conda atau di terminal, gunakan conda install -c mittner r-readxl.
Gunakan perintah berikut untuk memuat pustaka untuk mengimpor file excel.
library(readxl)
readxl_example ()
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 saja
readxl_example("geometry.xls")
Jika Anda menginstal R dengan conda, spreadsheet berada di Anaconda3 / lib / R / library / readxl / extdata / filename.xls
read_excel ()
Fungsi read_excel () sangat berguna untuk 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
Kami 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 spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Keluaran:
## [1] 5
excel_sheets ()
File datasetets.xlsx terdiri dari 4 lembar. Kita bisa mengetahui sheet mana 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 mencakup banyak lembar, mudah untuk memilih lembar tertentu dengan menggunakan argumen lembar. Kami dapat menentukan nama sheet atau indeks sheet. Kita bisa 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 apa yang akan dibaca dengan 2 cara
- Gunakan argumen n_max untuk mengembalikan baris n
- Gunakan argumen rentang yang dikombinasikan dengan baris_sel atau kolom_sel
Misalnya, kami menetapkan n_max sama dengan 5 untuk mengimpor lima baris pertama.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Jika kita mengubah col_names menjadi FALSE, R membuat header secara otomatis.
# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
Pada data frame iris_no_header, R membuat lima variabel baru bernama X__1, X__2, X__3, X__4 dan X__5
Kami juga dapat menggunakan rentang argumen untuk memilih baris dan kolom di spreadsheet. Pada kode di bawah ini, kami menggunakan gaya excel untuk memilih rentang A1 hingga B5.
# Read rows A1 to B5example_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. Kumpulan data memiliki tajuk, dengan alasan dimensinya adalah 4x2.
Dalam contoh kedua, kami menggunakan fungsi cell_rows () yang mengontrol rentang baris untuk dikembalikan. Jika kita ingin mengimpor baris 1 sampai 5, kita dapat mengatur baris_sel (1: 5). Perhatikan bahwa baris_sel (1: 5) mengembalikan output yang sama dengan baris_sel (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Keluaran:
## [1] 4 5
Namun example_2 adalah matriks 4x5. Dataset iris memiliki 5 kolom dengan header. Kami mengembalikan empat baris pertama dengan tajuk semua kolom
Jika kita ingin mengimpor baris yang tidak dimulai pada baris pertama, kita harus menyertakan col_names = FALSE. Jika kita menggunakan range = cell_rows (2: 5), terlihat jelas data frame kita sudah 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 Bcol <-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 null. Dataset 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
- is.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 heaven. Paket ini mendukung software SAS, STATA dan SPSS. Kita dapat menggunakan fungsi berikut untuk membuka berbagai jenis dataset, sesuai dengan ekstensi file:
- SAS: read_sas ()
- STATA: read_dta () (atau read_stata (), yang identik)
- SPSS: read_sav () atau read_por (). Kami perlu memeriksa ekstensi
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 menerima URL juga.
library(haven)
surga dilengkapi dengan conda r-essential jika tidak pergi ke tautan atau di terminal conda install -c conda-forge r-haven
Baca sas
Untuk contoh kami, kami akan menggunakan set data masuk 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#### 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 dataset 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#### 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#### 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
Saat kita ingin mengimpor data ke R, ada gunanya menerapkan daftar periksa berikut. Ini akan memudahkan untuk mengimpor data dengan benar ke R:
- Format tipikal untuk spreadsheet adalah menggunakan baris pertama sebagai tajuk (biasanya nama variabel).
- Hindari menamai kumpulan data dengan spasi kosong; itu dapat menyebabkan penafsiran sebagai variabel terpisah. Atau, lebih suka menggunakan '_' atau '-.'
- Nama pendek lebih disukai
- Jangan menyertakan simbol dalam nama: mis .: exchange_rate _ $ _ € tidak benar. 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 akan digunakan untuk mengimpor berbagai jenis file di R. Kolom satu menyatakan pustaka yang terkait dengan fungsi tersebut. Kolom terakhir mengacu pada argumen default.
Perpustakaan |
Objektif |
Fungsi |
Argumen Default |
---|---|---|---|
utilitas |
Baca file CSV |
read.csv () |
file, header =, TRUE, sep = "," |
readxl |
Baca file EXCEL |
read_excel () |
jalur, range = NULL, col_names = TRUE |
tempat berlindung |
Baca file SAS |
read_sas () |
jalan |
tempat berlindung |
Baca file STATA |
read_stata () |
jalan |
tempat berlindung |
Baca file SPSS |
read_sav () |
jalan |
Tabel berikut menunjukkan cara berbeda untuk mengimpor pilihan dengan fungsi read_excel ().
Fungsi |
Tujuan |
Argumen |
---|---|---|
read_excel () |
Baca n jumlah baris |
n_maks = 10 |
Pilih baris dan kolom seperti di excel |
range = "A1: D10" |
|
Pilih baris dengan indeks |
range = baris_sel (1: 3) |
|
Pilih kolom dengan huruf |
range = cell_cols ("A: C") |