library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ 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)
library(vctrs)
## 
## Attaching package: 'vctrs'
## 
## The following object is masked from 'package:dplyr':
## 
##     data_frame
## 
## The following object is masked from 'package:tibble':
## 
##     data_frame
data("airquality")
airquality <- tibble::as.tibble(airquality)
## 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(airquality)
## [1] "tbl_df"     "tbl"        "data.frame"
view(airquality)
glimpse(airquality)
## Rows: 153
## Columns: 6
## $ Ozone   <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, 18, 14, …
## $ Solar.R <int> 190, 118, 149, 313, NA, NA, 299, 99, 19, 194, NA, 256, 290, 27…
## $ Wind    <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6, 6.9, 9…
## $ Temp    <int> 67, 72, 74, 62, 56, 66, 65, 59, 61, 69, 74, 69, 66, 68, 58, 64…
## $ Month   <int> 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,…
## $ Day     <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,…
mean(airquality$Temp) == airquality$Temp %>% mean()
## [1] TRUE
head (airquality)
## # A tibble: 6 × 6
##   Ozone Solar.R  Wind  Temp Month   Day
##   <int>   <int> <dbl> <int> <int> <int>
## 1    41     190   7.4    67     5     1
## 2    36     118   8      72     5     2
## 3    12     149  12.6    74     5     3
## 4    18     313  11.5    62     5     4
## 5    NA      NA  14.3    56     5     5
## 6    28      NA  14.9    66     5     6
?glimpse
## starting httpd help server ... done
glimpse (airquality)
## Rows: 153
## Columns: 6
## $ Ozone   <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, 18, 14, …
## $ Solar.R <int> 190, 118, 149, 313, NA, NA, 299, 99, 19, 194, NA, 256, 290, 27…
## $ Wind    <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6, 6.9, 9…
## $ Temp    <int> 67, 72, 74, 62, 56, 66, 65, 59, 61, 69, 74, 69, 66, 68, 58, 64…
## $ Month   <int> 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,…
## $ Day     <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,…
mean (airquality$Temp)
## [1] 77.88235
?airquality
mean (airquality$Temp) == airquality$Temp %>% mean() 
## [1] TRUE
#summarize 
## Menghitung rata-rata Temp
airquality %>% summarize(mean=mean(Temp))
## # A tibble: 1 × 1
##    mean
##   <dbl>
## 1  77.9
## Mengurutkan berdasarkan peubah Temp dari nilai terkecil
airquality %>% arrange(Temp)
## # A tibble: 153 × 6
##    Ozone Solar.R  Wind  Temp Month   Day
##    <int>   <int> <dbl> <int> <int> <int>
##  1    NA      NA  14.3    56     5     5
##  2     6      78  18.4    57     5    18
##  3    NA      66  16.6    57     5    25
##  4    NA      NA   8      57     5    27
##  5    18      65  13.2    58     5    15
##  6    NA     266  14.9    58     5    26
##  7    19      99  13.8    59     5     8
##  8     1       8   9.7    59     5    21
##  9     8      19  20.1    61     5     9
## 10     4      25   9.7    61     5    23
## # ℹ 143 more rows
## Mengurutkan berdasarkan peubah Temp dari nilai terbesar
airquality %>% arrange(desc(Temp))
## # A tibble: 153 × 6
##    Ozone Solar.R  Wind  Temp Month   Day
##    <int>   <int> <dbl> <int> <int> <int>
##  1    76     203   9.7    97     8    28
##  2    84     237   6.3    96     8    30
##  3   118     225   2.3    94     8    29
##  4    85     188   6.3    94     8    31
##  5    NA     259  10.9    93     6    11
##  6    73     183   2.8    93     9     3
##  7    91     189   4.6    93     9     4
##  8    NA     250   9.2    92     6    12
##  9    97     267   6.3    92     7     8
## 10    97     272   5.7    92     7     9
## # ℹ 143 more rows
#Filter memilih kualitas udara berdasarkan bulan (contoh: bulan 9)
airquality %>% filter(Month =="9")
## # A tibble: 30 × 6
##    Ozone Solar.R  Wind  Temp Month   Day
##    <int>   <int> <dbl> <int> <int> <int>
##  1    96     167   6.9    91     9     1
##  2    78     197   5.1    92     9     2
##  3    73     183   2.8    93     9     3
##  4    91     189   4.6    93     9     4
##  5    47      95   7.4    87     9     5
##  6    32      92  15.5    84     9     6
##  7    20     252  10.9    80     9     7
##  8    23     220  10.3    78     9     8
##  9    21     230  10.9    75     9     9
## 10    24     259   9.7    73     9    10
## # ℹ 20 more rows
airquality %>% select(Temp, Month)
## # A tibble: 153 × 2
##     Temp Month
##    <int> <int>
##  1    67     5
##  2    72     5
##  3    74     5
##  4    62     5
##  5    56     5
##  6    66     5
##  7    65     5
##  8    59     5
##  9    61     5
## 10    69     5
## # ℹ 143 more rows
airquality %>% select(-Temp, -Month)
## # A tibble: 153 × 4
##    Ozone Solar.R  Wind   Day
##    <int>   <int> <dbl> <int>
##  1    41     190   7.4     1
##  2    36     118   8       2
##  3    12     149  12.6     3
##  4    18     313  11.5     4
##  5    NA      NA  14.3     5
##  6    28      NA  14.9     6
##  7    23     299   8.6     7
##  8    19      99  13.8     8
##  9     8      19  20.1     9
## 10    NA     194   8.6    10
## # ℹ 143 more rows
# Laju kenaikan suhu setiap harinya terhadap kualitas udara (mutate)
lajusuhu <- airquality %>% mutate(lajusuhu = c(NA, diff(Temp)))
lajusuhu %>% print 
## # A tibble: 153 × 7
##    Ozone Solar.R  Wind  Temp Month   Day lajusuhu
##    <int>   <int> <dbl> <int> <int> <int>    <int>
##  1    41     190   7.4    67     5     1       NA
##  2    36     118   8      72     5     2        5
##  3    12     149  12.6    74     5     3        2
##  4    18     313  11.5    62     5     4      -12
##  5    NA      NA  14.3    56     5     5       -6
##  6    28      NA  14.9    66     5     6       10
##  7    23     299   8.6    65     5     7       -1
##  8    19      99  13.8    59     5     8       -6
##  9     8      19  20.1    61     5     9        2
## 10    NA     194   8.6    69     5    10        8
## # ℹ 143 more rows