#Pengambilan data dan informasi umumnya, install library yang akan digunakan terlebih dahulu jika belum ada
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(datasets)
data(quakes)
view(quakes)
quakes <- tibble::as.tibble(quakes)
## Warning: `as.tibble()` was deprecated in tibble 2.0.0.
## ℹ Please use `as_tibble()` instead.
## ℹ The signature and semantics have changed, see `?as_tibble`.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
class(quakes)
## [1] "tbl_df"     "tbl"        "data.frame"
head(quakes)
## # A tibble: 6 × 5
##     lat  long depth   mag stations
##   <dbl> <dbl> <int> <dbl>    <int>
## 1 -20.4  182.   562   4.8       41
## 2 -20.6  181.   650   4.2       15
## 3 -26    184.    42   5.4       43
## 4 -18.0  182.   626   4.1       19
## 5 -20.4  182.   649   4         11
## 6 -19.7  184.   195   4         12
glimpse(quakes)
## Rows: 1,000
## Columns: 5
## $ lat      <dbl> -20.42, -20.62, -26.00, -17.97, -20.42, -19.68, -11.70, -28.1…
## $ long     <dbl> 181.62, 181.03, 184.10, 181.66, 181.96, 184.31, 166.10, 181.9…
## $ depth    <int> 562, 650, 42, 626, 649, 195, 82, 194, 211, 622, 583, 249, 554…
## $ mag      <dbl> 4.8, 4.2, 5.4, 4.1, 4.0, 4.0, 4.8, 4.4, 4.7, 4.3, 4.4, 4.6, 4…
## $ stations <int> 41, 15, 43, 19, 11, 12, 43, 15, 35, 19, 13, 16, 19, 10, 94, 1…
#Penggunaan fungsi summarize untuk menghitung mean, median, dan standar deviasi variabel mag secara keseluruhan
quakes %>% 
  summarize(mean_mag=mean(mag),
            median_mag=median(mag),
            sd_mag=sd(mag))
## # A tibble: 1 × 3
##   mean_mag median_mag sd_mag
##      <dbl>      <dbl>  <dbl>
## 1     4.62        4.6  0.403
#Penggunaan fungsi arrange untuk mengurutkan data berdasarkan long, secara default ascending dan descending
quakes %>% 
  arrange(long)
## # A tibble: 1,000 × 5
##      lat  long depth   mag stations
##    <dbl> <dbl> <int> <dbl>    <int>
##  1 -12.8  166.    75   4.4       30
##  2 -12.1  166.    63   4.5       51
##  3 -10.8  166.    93   4.6       20
##  4 -11.8  166.   112   4.2       20
##  5 -10.8  166.   175   4.2       12
##  6 -13.6  166.    50   6         83
##  7 -11.8  166.    45   4.4       51
##  8 -11.0  166.    76   4.9       64
##  9 -11.8  166.    51   4.7       28
## 10 -10.7  166.   195   4         14
## # ℹ 990 more rows
quakes %>% 
  arrange(desc(long))
## # A tibble: 1,000 × 5
##      lat  long depth   mag stations
##    <dbl> <dbl> <int> <dbl>    <int>
##  1 -15.9  188.    52   5         30
##  2 -17.7  188.    45   4.2       10
##  3 -15.5  188.    40   5.5       91
##  4 -16.5  188.    40   4.5       18
##  5 -17.4  188.    40   4.5       14
##  6 -18.8  188.    44   4.8       35
##  7 -16.1  187.    61   4.5       19
##  8 -16.1  187.    42   5.1       68
##  9 -15.2  187.    50   4.7       28
## 10 -15.6  187.    49   5         30
## # ℹ 990 more rows
#Penggunaan fungsi filter untuk menampilkan data dengan 15 stations
quakes %>% 
  filter(stations==15)
## # A tibble: 34 × 5
##      lat  long depth   mag stations
##    <dbl> <dbl> <int> <dbl>    <int>
##  1 -20.6  181.   650   4.2       15
##  2 -28.1  182.   194   4.4       15
##  3 -17.9  181.   537   4         15
##  4 -19.3  184.   223   4         15
##  5 -23.5  180.   564   4.3       15
##  6 -21.8  182.   323   4.2       15
##  7 -20.1  183.   284   4.3       15
##  8 -19.7  184.   170   4.3       15
##  9 -19.4  184.   293   4.2       15
## 10 -20.3  183    375   4.2       15
## # ℹ 24 more rows
#Penggunaan fungsi select untuk menampilkan data tertentu, baik dengan instruksi memunculkan suatu variabel atau menghilangkan variabel
quakes %>% 
  select(depth, mag)
## # A tibble: 1,000 × 2
##    depth   mag
##    <int> <dbl>
##  1   562   4.8
##  2   650   4.2
##  3    42   5.4
##  4   626   4.1
##  5   649   4  
##  6   195   4  
##  7    82   4.8
##  8   194   4.4
##  9   211   4.7
## 10   622   4.3
## # ℹ 990 more rows
quakes %>% 
  select(-lat, -long, -stations)
## # A tibble: 1,000 × 2
##    depth   mag
##    <int> <dbl>
##  1   562   4.8
##  2   650   4.2
##  3    42   5.4
##  4   626   4.1
##  5   649   4  
##  6   195   4  
##  7    82   4.8
##  8   194   4.4
##  9   211   4.7
## 10   622   4.3
## # ℹ 990 more rows
#Penggunaan fungsi mutate untuk membuat variabel baru berupa kedalaman dalam ukuran mil (depth(mil))
quakes %>% 
  mutate('depth(mil)'=depth*0.621)
## # A tibble: 1,000 × 6
##      lat  long depth   mag stations `depth(mil)`
##    <dbl> <dbl> <int> <dbl>    <int>        <dbl>
##  1 -20.4  182.   562   4.8       41        349. 
##  2 -20.6  181.   650   4.2       15        404. 
##  3 -26    184.    42   5.4       43         26.1
##  4 -18.0  182.   626   4.1       19        389. 
##  5 -20.4  182.   649   4         11        403. 
##  6 -19.7  184.   195   4         12        121. 
##  7 -11.7  166.    82   4.8       43         50.9
##  8 -28.1  182.   194   4.4       15        120. 
##  9 -28.7  182.   211   4.7       35        131. 
## 10 -17.5  180.   622   4.3       19        386. 
## # ℹ 990 more rows
#Penggunaan fungsi select, filter, dan arrange untuk menampilkan variabel lat, long, dan mag dengan nilai mag lebih besar sama dengan 6 yang diurutkan dari terkecil
quakes %>% 
  select(lat, long, mag) %>% 
  filter(mag >= 6) %>% 
  arrange(mag)
## # A tibble: 5 × 3
##     lat  long   mag
##   <dbl> <dbl> <dbl>
## 1 -13.6  166.   6  
## 2 -12.2  167.   6  
## 3 -21.6  171.   6  
## 4 -20.7  170.   6.1
## 5 -15.6  168.   6.4
#Penggunaan fungsi select dan filter untuk menampilkan variabel lat, long, dan mag dengan menambahkan fungsi str_detect dari package stringr di dalam tidyverse untuk melakukan filtering pada data long yang bernilai 180an
quakes %>% 
  select(lat, long, depth) %>% 
  filter(str_detect(long,"180"))
## # A tibble: 133 × 3
##      lat  long depth
##    <dbl> <dbl> <int>
##  1 -21.4  181.   583
##  2 -22.6  180.   598
##  3 -23.3  180.   512
##  4 -19.7  180.   431
##  5 -16.5  181.   498
##  6 -23.6  181.   349
##  7 -24.1  180.   493
##  8 -21.4  181.   593
##  9 -22.1  181.   584
## 10 -23.5  180.   564
## # ℹ 123 more rows
#Penggunaan fungsi summarize dan group_by untuk menghitung mean depth berdasarkan variabel mag
quakes %>% 
  group_by(mag) %>% 
  summarize(mean_depth=mean(depth))
## # A tibble: 22 × 2
##      mag mean_depth
##    <dbl>      <dbl>
##  1   4         410.
##  2   4.1       412.
##  3   4.2       390.
##  4   4.3       358.
##  5   4.4       307.
##  6   4.5       334.
##  7   4.6       331.
##  8   4.7       238.
##  9   4.8       229.
## 10   4.9       248.
## # ℹ 12 more rows
#Penggunaan fungsi summarize dan groupp_by untuk melakukan perhitungan pada dataset berdasarkan kelompok stations
quakes %>% 
  group_by(stations) %>% 
  summarize(n())
## # A tibble: 102 × 2
##    stations `n()`
##       <int> <int>
##  1       10    20
##  2       11    28
##  3       12    25
##  4       13    21
##  5       14    39
##  6       15    34
##  7       16    35
##  8       17    38
##  9       18    33
## 10       19    29
## # ℹ 92 more rows
#Penggunaan fungsi mutate yang digabung dengan fungsi case when dan select untuk membuat kolom baru bernama Status yang berisi kondisional tertentu dari variabel mag dan menampilkan variabel depth, mag, dan status
quakes %>% 
  mutate(Status = case_when(mag < 4.3 ~ "Small",
                            mag >= 4.3 &  mag < 5.8 ~ "Medium",
                            mag >= 5.8 ~ "Large")) %>% 
  select(-lat, -long, -stations)
## # A tibble: 1,000 × 3
##    depth   mag Status
##    <int> <dbl> <chr> 
##  1   562   4.8 Medium
##  2   650   4.2 Small 
##  3    42   5.4 Medium
##  4   626   4.1 Small 
##  5   649   4   Small 
##  6   195   4   Small 
##  7    82   4.8 Medium
##  8   194   4.4 Medium
##  9   211   4.7 Medium
## 10   622   4.3 Medium
## # ℹ 990 more rows