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.9000     ✔ 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("sleep")
SS<-tibble::as_tibble(sleep)
view(SS)
class(SS)
## [1] "tbl_df"     "tbl"        "data.frame"
head(SS)
## # A tibble: 6 × 3
##   extra group ID   
##   <dbl> <fct> <fct>
## 1   0.7 1     1    
## 2  -1.6 1     2    
## 3  -0.2 1     3    
## 4  -1.2 1     4    
## 5  -0.1 1     5    
## 6   3.4 1     6
glimpse(SS)
## Rows: 20
## Columns: 3
## $ extra <dbl> 0.7, -1.6, -0.2, -1.2, -0.1, 3.4, 3.7, 0.8, 0.0, 2.0, 1.9, 0.8, …
## $ group <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
## $ ID    <fct> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
summary(SS)
##      extra        group        ID   
##  Min.   :-1.600   1:10   1      :2  
##  1st Qu.:-0.025   2:10   2      :2  
##  Median : 0.950          3      :2  
##  Mean   : 1.540          4      :2  
##  3rd Qu.: 3.400          5      :2  
##  Max.   : 5.500          6      :2  
##                          (Other):8
#Fungsi summarize untuk menampilkan rata-rata pertambahan jam tidur berdasarkan obat yang diberikan
rataan_durasi <- SS %>% group_by(group) %>% summarize(ratarata_jamtidur = mean(extra)) 

rataan_durasi
## # A tibble: 2 × 2
##   group ratarata_jamtidur
##   <fct>             <dbl>
## 1 1                  0.75
## 2 2                  2.33
#Fungsi arrange untuk mengurutkan pertambahan jam tidur dari terbesar ke terkecil
SS %>% arrange(desc(extra))
## # A tibble: 20 × 3
##    extra group ID   
##    <dbl> <fct> <fct>
##  1   5.5 2     7    
##  2   4.6 2     9    
##  3   4.4 2     6    
##  4   3.7 1     7    
##  5   3.4 1     6    
##  6   3.4 2     10   
##  7   2   1     10   
##  8   1.9 2     1    
##  9   1.6 2     8    
## 10   1.1 2     3    
## 11   0.8 1     8    
## 12   0.8 2     2    
## 13   0.7 1     1    
## 14   0.1 2     4    
## 15   0   1     9    
## 16  -0.1 1     5    
## 17  -0.1 2     5    
## 18  -0.2 1     3    
## 19  -1.2 1     4    
## 20  -1.6 1     2
#Fungsi filter untuk menampilkan data pertambahan jam tidur selama lebih dari 2 jam
SS %>% filter(extra>="2")
## # A tibble: 7 × 3
##   extra group ID   
##   <dbl> <fct> <fct>
## 1   3.4 1     6    
## 2   3.7 1     7    
## 3   2   1     10   
## 4   4.4 2     6    
## 5   5.5 2     7    
## 6   4.6 2     9    
## 7   3.4 2     10
#Fungsi select untuk menampilkan tabel tanpa kolom group
SS %>% select(-group)
## # A tibble: 20 × 2
##    extra ID   
##    <dbl> <fct>
##  1   0.7 1    
##  2  -1.6 2    
##  3  -0.2 3    
##  4  -1.2 4    
##  5  -0.1 5    
##  6   3.4 6    
##  7   3.7 7    
##  8   0.8 8    
##  9   0   9    
## 10   2   10   
## 11   1.9 1    
## 12   0.8 2    
## 13   1.1 3    
## 14   0.1 4    
## 15  -0.1 5    
## 16   4.4 6    
## 17   5.5 7    
## 18   1.6 8    
## 19   4.6 9    
## 20   3.4 10
#Fungsi mutate
SS %>% mutate(jamtidur_bertambah=extra>="0.1")
## # A tibble: 20 × 4
##    extra group ID    jamtidur_bertambah
##    <dbl> <fct> <fct> <lgl>             
##  1   0.7 1     1     TRUE              
##  2  -1.6 1     2     FALSE             
##  3  -0.2 1     3     FALSE             
##  4  -1.2 1     4     FALSE             
##  5  -0.1 1     5     FALSE             
##  6   3.4 1     6     TRUE              
##  7   3.7 1     7     TRUE              
##  8   0.8 1     8     TRUE              
##  9   0   1     9     FALSE             
## 10   2   1     10    TRUE              
## 11   1.9 2     1     TRUE              
## 12   0.8 2     2     TRUE              
## 13   1.1 2     3     TRUE              
## 14   0.1 2     4     TRUE              
## 15  -0.1 2     5     FALSE             
## 16   4.4 2     6     TRUE              
## 17   5.5 2     7     TRUE              
## 18   1.6 2     8     TRUE              
## 19   4.6 2     9     TRUE              
## 20   3.4 2     10    TRUE
#Menampilkan data pertambahan jam tidur lebih besar atau sama dengan 1 jam tanpa melihat obat yang diberikan
SS %>% select(-group) %>% group_by(extra) %>% filter(extra>="1")
## # A tibble: 10 × 2
## # Groups:   extra [9]
##    extra ID   
##    <dbl> <fct>
##  1   3.4 6    
##  2   3.7 7    
##  3   2   10   
##  4   1.9 1    
##  5   1.1 3    
##  6   4.4 6    
##  7   5.5 7    
##  8   1.6 8    
##  9   4.6 9    
## 10   3.4 10