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