Topik 3 | Spreadsheet

Sebelum melakukan data import kita perlu mengunduh file datasets pada link berikut : AktUPNYK/Project-DA (github.com) atau klik ikon Github dan unduh file Data yang diperlukan, perhatikan lokasi save file script R dan folder data agar mudah membaca data yang akan di import. Misal kita buat folder Belajar R di Local disk D kemudian save script R nanti pada folder Belajar R dan di Folder Belajar R tadi kita buat folder baru dengan nama data untuk menyimpan file datasets yang akan kita import atau kita olah secara lokal.

1. Import Data Spreadsheet Excel

1.1 Library Spreadsheet Excel

Di bagian ini, kita akan mempelajari cara memuat data dari spreadsheet Excel di R dengan package readxl. Package ini adalah tidyverse non-core, jadi kita perlu memuatnya secara eksplisit, tetapi diinstal secara otomatis ketika menginstal paket tidyverse. Kemudian, kita juga akan menggunakan package writexl, yang memungkinkan kita untuk membuat spreadsheet Excel.

library(readxl)
library(tidyverse)
library(writexl)

1.2 Membaca spreadsheet Excel

Semua fungsi ini memiliki sintaks yang sama seperti fungsi untuk membaca jenis file lain, misalnya, read_csv() , read_table() dll. kali ini kita akan menggunakan read_excel() . kita akan mengimport data Excel data_mahasiswa_akt yang telah diunduh tadi misal lokasi file di folder data maka dengan menggunakan fungsi :

#> membaca file student.xlsx dari lokasi folder data
mahasiswa <- read_excel("data/data_mahasiswa_akt.xlsx")

mahasiswa
# A tibble: 6 × 5
  `Nim mhs` `Nama mhsw`         `JuruSaN'` `AsaL'`    `uMur Mhsw`
      <dbl> <chr>               <chr>      <chr>      <chr>      
1   1111111 aaaaaaaaaa          Akuntansi  yyyyyy     0          
2  14222002 Budi Setiawan       Akuntansi  Sleman     19         
3  14222003 Chandra Rahmad      N/A        Bantul     20         
4  14222004 Dewi Safrida        Akuntansi  Yogyakarta 19         
5  14222005 Elsa Soraya         Akuntansi  Bandung    duapuluh   
6  14222006 Fikri Yurcel Milano Akuntansi  Pontianak  21         

Nama kolom tidak teratur,ingat bahwa untuk pemrosesan data yang efektif nama variable sangatlah penting sehingga hindari penamaan dengan spasi ( ) ganti dengan _ , kemudian kita bisa ubah dengan fungsi col_names

#> mengubah nama kolom
read_excel(
  "data/data_mahasiswa_akt.xlsx",
  col_names = c("nim_mahasiswa", "nama_mahasiswa", "jurusan", "asal", "umur"),
  skip = 1
)
# A tibble: 6 × 5
  nim_mahasiswa nama_mahasiswa      jurusan   asal       umur    
          <dbl> <chr>               <chr>     <chr>      <chr>   
1       1111111 aaaaaaaaaa          Akuntansi yyyyyy     0       
2      14222002 Budi Setiawan       Akuntansi Sleman     19      
3      14222003 Chandra Rahmad      N/A       Bantul     20      
4      14222004 Dewi Safrida        Akuntansi Yogyakarta 19      
5      14222005 Elsa Soraya         Akuntansi Bandung    duapuluh
6      14222006 Fikri Yurcel Milano Akuntansi Pontianak  21      

1.2.1 Tipe Data

Dalam file Excel, semua nilai memiliki tipe yang berbeda tidak semuanya adalah string. Data yang mendasari dalam spreadsheet Excel lebih kompleks, seperti :

  • Boolean, seperti TRUE , , FALSE atau NA.

  • Number, seperti “10” atau “10,5”.

  • Date, yang juga dapat mencakup waktu seperti “11/1/21” atau “11/1/21 3:00 PM”.

  • String teks, seperti “sepuluh”.

terlihat pada kolom age dengan tipe data yang seharusnya numeric terdapat data string/huruf (duapuluh) sehingga kita ubah agar menjadi numeric (20)

mahasiswa <- read_excel(
  "data/data_mahasiswa_akt.xlsx",
  
#> Ubah nama kolom 
  col_names = c("nim_mahasiswa", "nama_mahasiswa", "jurusan", "asal", "umur"),
  
  skip = 1,
  
  #> Kita sesuaikan nilai N/A menjadi nilai logik (NA)
  na = c("", "N/A"),
  
  #> Fungsi col_types mengubah type data
  col_types = c("numeric", "text", "text", "text", "text"))
  
 

#> Gunakan fungsi mutate untuk mengubah nilai dari "dua puluh" jadi "5", ingat bahwa tipe data umur masih char
mahasiswa <- mahasiswa |>
  mutate(
    umur = if_else(umur == "duapuluh", "20", umur),
    
    #> Karena masih terbaca character untuk tipe data umur, kita kembalikan nilai ke numeric
    umur = parse_number(umur)
  )

mahasiswa
# A tibble: 6 × 5
  nim_mahasiswa nama_mahasiswa      jurusan   asal        umur
          <dbl> <chr>               <chr>     <chr>      <dbl>
1       1111111 aaaaaaaaaa          Akuntansi yyyyyy         0
2      14222002 Budi Setiawan       Akuntansi Sleman        19
3      14222003 Chandra Rahmad      <NA>      Bantul        20
4      14222004 Dewi Safrida        Akuntansi Yogyakarta    19
5      14222005 Elsa Soraya         Akuntansi Bandung       20
6      14222006 Fikri Yurcel Milano Akuntansi Pontianak     21

Selanjutnya kita akan coba mengubah value data NIM Mahasiswa, Nama Mahasiswa, Asal, dan Umur pada baris pertama dengan kombinasi struktur command diatas :

mahasiswa <- read_excel(
  "data/data_mahasiswa_akt.xlsx",
  
#> Ubah nama kolom 
  col_names = c("nim_mahasiswa", "nama_mahasiswa", "jurusan", "asal", "umur"),
  
  skip = 1,
  
  #> Kita sesuaikan nilai N/A menjadi nilai logik (NA)
  na = c("", "N/A"),
  
  #> Fungsi col_types mengubah type data
  col_types = c("numeric", "text", "text", "text", "text"))
  
 

#> Gunakan fungsi mutate untuk mengubah nilai dari "dua puluh" jadi "5", ingat bahwa tipe data umur masih char
mahasiswa <- mahasiswa |>
  mutate(
    umur = if_else(umur == "duapuluh", "20", umur),
    
    #> Karena masih terbaca character untuk tipe data umur, kita kembalikan nilai ke numeric
    umur = parse_number(umur)
  )

#> Ubah nilai nim 14222001 perhatikan bahwa tipe data nya adalah numeric maka value tanpa petik "", karena petik hanya untuk char dan string
mahasiswa <- mahasiswa |>
  mutate(
    nim_mahasiswa = if_else(nim_mahasiswa == 1111111, 14222001, nim_mahasiswa))


#> Ubah value nama_mahasiswa
mahasiswa <- mahasiswa |>
  mutate(
    nama_mahasiswa = if_else(nama_mahasiswa == "aaaaaaaaaa", "Anindyo Aji S", nama_mahasiswa))
    

#> Ubah value isi_asal
mahasiswa <- mahasiswa |>
  mutate(
    asal = if_else(asal == "yyyyyy", "Klaten", asal))


#> ubah value umur 0
mahasiswa <- mahasiswa |>
  mutate(
    umur = if_else(umur == 0, 21, umur))


#> Tampilkan hasil 
mahasiswa
# A tibble: 6 × 5
  nim_mahasiswa nama_mahasiswa      jurusan   asal        umur
          <dbl> <chr>               <chr>     <chr>      <dbl>
1      14222001 Anindyo Aji S       Akuntansi Klaten        21
2      14222002 Budi Setiawan       Akuntansi Sleman        19
3      14222003 Chandra Rahmad      <NA>      Bantul        20
4      14222004 Dewi Safrida        Akuntansi Yogyakarta    19
5      14222005 Elsa Soraya         Akuntansi Bandung       20
6      14222006 Fikri Yurcel Milano Akuntansi Pontianak     21

Nah itu tadi merupakan bagian paling sederhana dari proses pengubahan value data yang menjadi dasar untuk rangkaian data preparation pada step selanjutnya.

1.3 Membaca worksheet Excel

Kita bisa memilih akan menampilkan sheet yang diperlukan dari worksheet Excel

Pada data Excel Rekomendasi tempat Makan Enak terdapat worksheet dan kita hanya akan menampilkan sheet Resto Steak Jakarta

#> Identifikasi nama sheet excel "Resto Steak jakarta"
tempat_makan_steak_jakarta <- read_excel("data/rekomendasi_tempat_makan_enak.xlsx", sheet = "Resto Steak Jakarta", na = "NA")

#> Tampilkan data sheet Resto Steak Jakarta
tempat_makan_steak_jakarta
# A tibble: 187 × 28
      no restaurant_name   city  district place unique_menu  price google_rating
   <dbl> <chr>             <chr> <chr>    <chr> <chr>        <dbl> <chr>        
 1     1 Tucano's Churras… Cent… Sudirman Sena… Classic Be… 268000 45111.0      
 2     2 Kitchenette       Sout… Senayan  Sena… Kitchenett… 205000 45050.0      
 3     3 Tony Roma's       Cent… Thamrin  UOB … Baby Back … 170000 45050.0      
 4     4 Gandy Steak House Cent… Menteng  Owne… Grilled Au… 191000 45050.0      
 5     5 Joni Steak        Cent… Gajah M… Owne… Wagyu Top …  72000 45050.0      
 6     6 MUCCA Steak       Cent… Sudirman City… Tomahawk B… 940000 45050.0      
 7     7 El Machote        Cent… Menteng  Owne… Chivito Pl… 150000 0.0          
 8     8 Waroeng Steak & … Cent… Cempaka… Owne… Sirloin Do…  34545 45020.0      
 9     9 Holycow! Menteng  Cent… Menteng  Gedu… Wagyu Rib … 199000 44989.0      
10    10 Holycow! Pecenon… Cent… Pecenon… Owne… Australian… 133000 45050.0      
# ℹ 177 more rows
# ℹ 20 more variables: google_count <chr>, platform_rating <chr>,
#   platform_count <dbl>, specialized <chr>, beef <chr>, chicken <chr>,
#   seafood <chr>, appetizer <chr>, other_dish <chr>, dessert <chr>,
#   drinks <chr>, other_poultry <chr>, takeaway <chr>, delivery <chr>,
#   outdoor <chr>, smoking_area <chr>, alcohol_served <chr>, wifi <chr>,
#   reservation <chr>, other <chr>

1.4 Write ke Excel

Kita dapat menginput data dan mengubahnya ke Excel menggunakan fungsi write_xlsx() , misal kita akan membuat tabel Penjualan Roti dengan command tribble , ingat bahwa tribble merupakan command untuk membuat tabel data sederhana pada package tidyverse di R. dan selanjutnya kita input value masing-masing variable nya.

#> Buat data penjualan roti dan input pada variable produk & jumlah
penjualan_roti <- tibble(
  produk     = factor(c("Donat", "Roti Bakar", "Nastar", "Pisang Coklat")),
  jumlah = c(10, 5, 8, 999)
)

#> Tampilkan tabel
penjualan_roti
# A tibble: 4 × 2
  produk        jumlah
  <fct>          <dbl>
1 Donat             10
2 Roti Bakar         5
3 Nastar             8
4 Pisang Coklat    999
#> Selanjutnya kita create ke file Excel dan simpan di path lokasi folder
write_xlsx(penjualan_roti, path = "data/penjualan_roti.xlsx")
#> Tampilkan data Excel yang telah dibuat
read_excel("data/penjualan_roti.xlsx")
# A tibble: 4 × 2
  produk        jumlah
  <chr>          <dbl>
1 Donat             10
2 Roti Bakar         5
3 Nastar             8
4 Pisang Coklat    999
Back to top