library (tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ 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)
#Menampilkan atau mengakses datasets
data ()
ls("package:datasets")
##   [1] "ability.cov"           "airmiles"              "AirPassengers"        
##   [4] "airquality"            "anscombe"              "attenu"               
##   [7] "attitude"              "austres"               "beaver1"              
##  [10] "beaver2"               "BJsales"               "BJsales.lead"         
##  [13] "BOD"                   "cars"                  "ChickWeight"          
##  [16] "chickwts"              "co2"                   "CO2"                  
##  [19] "crimtab"               "discoveries"           "DNase"                
##  [22] "esoph"                 "euro"                  "euro.cross"           
##  [25] "eurodist"              "EuStockMarkets"        "faithful"             
##  [28] "fdeaths"               "Formaldehyde"          "freeny"               
##  [31] "freeny.x"              "freeny.y"              "HairEyeColor"         
##  [34] "Harman23.cor"          "Harman74.cor"          "Indometh"             
##  [37] "infert"                "InsectSprays"          "iris"                 
##  [40] "iris3"                 "islands"               "JohnsonJohnson"       
##  [43] "LakeHuron"             "ldeaths"               "lh"                   
##  [46] "LifeCycleSavings"      "Loblolly"              "longley"              
##  [49] "lynx"                  "mdeaths"               "morley"               
##  [52] "mtcars"                "nhtemp"                "Nile"                 
##  [55] "nottem"                "npk"                   "occupationalStatus"   
##  [58] "Orange"                "OrchardSprays"         "PlantGrowth"          
##  [61] "precip"                "presidents"            "pressure"             
##  [64] "Puromycin"             "quakes"                "randu"                
##  [67] "rivers"                "rock"                  "Seatbelts"            
##  [70] "sleep"                 "stack.loss"            "stack.x"              
##  [73] "stackloss"             "state.abb"             "state.area"           
##  [76] "state.center"          "state.division"        "state.name"           
##  [79] "state.region"          "state.x77"             "sunspot.month"        
##  [82] "sunspot.year"          "sunspots"              "swiss"                
##  [85] "Theoph"                "Titanic"               "ToothGrowth"          
##  [88] "treering"              "trees"                 "UCBAdmissions"        
##  [91] "UKDriverDeaths"        "UKgas"                 "USAccDeaths"          
##  [94] "USArrests"             "UScitiesD"             "USJudgeRatings"       
##  [97] "USPersonalExpenditure" "uspop"                 "VADeaths"             
## [100] "volcano"               "warpbreaks"            "women"                
## [103] "WorldPhones"           "WWWusage"
#Menampilkan atau mengakses data PlantGrowth pada datasets
data (PlantGrowth)
view (PlantGrowth)
PlantGrowth <- tibble::as.tibble (PlantGrowth)
## 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.
#Menampilkan tipe atau struktur data
class (PlantGrowth)
## [1] "tbl_df"     "tbl"        "data.frame"
#Melihat isi data
view (PlantGrowth)
head (PlantGrowth)
## # A tibble: 6 × 2
##   weight group
##    <dbl> <fct>
## 1   4.17 ctrl 
## 2   5.58 ctrl 
## 3   5.18 ctrl 
## 4   6.11 ctrl 
## 5   4.5  ctrl 
## 6   4.61 ctrl
glimpse (PlantGrowth)
## Rows: 30
## Columns: 2
## $ weight <dbl> 4.17, 5.58, 5.18, 6.11, 4.50, 4.61, 5.17, 4.53, 5.33, 5.14, 4.8…
## $ group  <fct> ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, trt…
#Mean : Menghitung rataan
##Menghitung rataan variabel weight seluruhnya
mean (PlantGrowth$weight)
## [1] 5.073
mean (PlantGrowth$weight) == PlantGrowth$weight %>% mean()
## [1] TRUE
#Summarize : Merangkum data
##Menghitung rataan variabel weight pada setiap group
PlantGrowth %>% group_by(group) %>% summarize(mean=mean(weight))
## # A tibble: 3 × 2
##   group  mean
##   <fct> <dbl>
## 1 ctrl   5.03
## 2 trt1   4.66
## 3 trt2   5.53
#Arrange : Mengurutkan baris dalam sebuah dataframe berdasarkan nilai tertentu
##Mengurutkan berdasarkan variabel weight dari nilai terkecil
PlantGrowth %>% arrange (weight) %>% print (n=30)
## # A tibble: 30 × 2
##    weight group
##     <dbl> <fct>
##  1   3.59 trt1 
##  2   3.83 trt1 
##  3   4.17 ctrl 
##  4   4.17 trt1 
##  5   4.32 trt1 
##  6   4.41 trt1 
##  7   4.5  ctrl 
##  8   4.53 ctrl 
##  9   4.61 ctrl 
## 10   4.69 trt1 
## 11   4.81 trt1 
## 12   4.89 trt1 
## 13   4.92 trt2 
## 14   5.12 trt2 
## 15   5.14 ctrl 
## 16   5.17 ctrl 
## 17   5.18 ctrl 
## 18   5.26 trt2 
## 19   5.29 trt2 
## 20   5.33 ctrl 
## 21   5.37 trt2 
## 22   5.5  trt2 
## 23   5.54 trt2 
## 24   5.58 ctrl 
## 25   5.8  trt2 
## 26   5.87 trt1 
## 27   6.03 trt1 
## 28   6.11 ctrl 
## 29   6.15 trt2 
## 30   6.31 trt2
##Mengurutkan berdasarkan variabel weight dari nilai terbesar
PlantGrowth %>% arrange (desc(weight)) %>% print (n=30)
## # A tibble: 30 × 2
##    weight group
##     <dbl> <fct>
##  1   6.31 trt2 
##  2   6.15 trt2 
##  3   6.11 ctrl 
##  4   6.03 trt1 
##  5   5.87 trt1 
##  6   5.8  trt2 
##  7   5.58 ctrl 
##  8   5.54 trt2 
##  9   5.5  trt2 
## 10   5.37 trt2 
## 11   5.33 ctrl 
## 12   5.29 trt2 
## 13   5.26 trt2 
## 14   5.18 ctrl 
## 15   5.17 ctrl 
## 16   5.14 ctrl 
## 17   5.12 trt2 
## 18   4.92 trt2 
## 19   4.89 trt1 
## 20   4.81 trt1 
## 21   4.69 trt1 
## 22   4.61 ctrl 
## 23   4.53 ctrl 
## 24   4.5  ctrl 
## 25   4.41 trt1 
## 26   4.32 trt1 
## 27   4.17 ctrl 
## 28   4.17 trt1 
## 29   3.83 trt1 
## 30   3.59 trt1
#Filter : Memilih baris tertentu dari sebuah dataframe berdasarkan suatu kriteria tertentu
##Mengambil data dari group "ctrl"
PlantGrowth %>%  filter(group == "ctrl")
## # A tibble: 10 × 2
##    weight group
##     <dbl> <fct>
##  1   4.17 ctrl 
##  2   5.58 ctrl 
##  3   5.18 ctrl 
##  4   6.11 ctrl 
##  5   4.5  ctrl 
##  6   4.61 ctrl 
##  7   5.17 ctrl 
##  8   4.53 ctrl 
##  9   5.33 ctrl 
## 10   5.14 ctrl
#Select : Mengambil kolom (variabel) tertentu dari sebuah dataframe
##Mengambil variabel weight
PlantGrowth %>% select(weight) %>% print (n=30)
## # A tibble: 30 × 1
##    weight
##     <dbl>
##  1   4.17
##  2   5.58
##  3   5.18
##  4   6.11
##  5   4.5 
##  6   4.61
##  7   5.17
##  8   4.53
##  9   5.33
## 10   5.14
## 11   4.81
## 12   4.17
## 13   4.41
## 14   3.59
## 15   5.87
## 16   3.83
## 17   6.03
## 18   4.89
## 19   4.32
## 20   4.69
## 21   6.31
## 22   5.12
## 23   5.54
## 24   5.5 
## 25   5.37
## 26   5.29
## 27   4.92
## 28   6.15
## 29   5.8 
## 30   5.26
##Menghapus variabel group
PlantGrowth %>% select(-group) %>% print (n=30)
## # A tibble: 30 × 1
##    weight
##     <dbl>
##  1   4.17
##  2   5.58
##  3   5.18
##  4   6.11
##  5   4.5 
##  6   4.61
##  7   5.17
##  8   4.53
##  9   5.33
## 10   5.14
## 11   4.81
## 12   4.17
## 13   4.41
## 14   3.59
## 15   5.87
## 16   3.83
## 17   6.03
## 18   4.89
## 19   4.32
## 20   4.69
## 21   6.31
## 22   5.12
## 23   5.54
## 24   5.5 
## 25   5.37
## 26   5.29
## 27   4.92
## 28   6.15
## 29   5.8 
## 30   5.26
#Mutate : Menambahkan variabel baru
##Menambahkan variabel baru "weight_kg" yang menunjukkan berat tanaman dalam kilogram
PlantGrowth %>% mutate(weight_kg = weight / 1000) %>% print (n=30)
## # A tibble: 30 × 3
##    weight group weight_kg
##     <dbl> <fct>     <dbl>
##  1   4.17 ctrl    0.00417
##  2   5.58 ctrl    0.00558
##  3   5.18 ctrl    0.00518
##  4   6.11 ctrl    0.00611
##  5   4.5  ctrl    0.0045 
##  6   4.61 ctrl    0.00461
##  7   5.17 ctrl    0.00517
##  8   4.53 ctrl    0.00453
##  9   5.33 ctrl    0.00533
## 10   5.14 ctrl    0.00514
## 11   4.81 trt1    0.00481
## 12   4.17 trt1    0.00417
## 13   4.41 trt1    0.00441
## 14   3.59 trt1    0.00359
## 15   5.87 trt1    0.00587
## 16   3.83 trt1    0.00383
## 17   6.03 trt1    0.00603
## 18   4.89 trt1    0.00489
## 19   4.32 trt1    0.00432
## 20   4.69 trt1    0.00469
## 21   6.31 trt2    0.00631
## 22   5.12 trt2    0.00512
## 23   5.54 trt2    0.00554
## 24   5.5  trt2    0.0055 
## 25   5.37 trt2    0.00537
## 26   5.29 trt2    0.00529
## 27   4.92 trt2    0.00492
## 28   6.15 trt2    0.00615
## 29   5.8  trt2    0.0058 
## 30   5.26 trt2    0.00526
#Menggunakan fungsi mutate dan select secara bersamaan
NewPlantGrowth <- PlantGrowth %>% mutate(weight_kg = weight / 1000) %>% select(-weight) %>% print (n=30)
## # A tibble: 30 × 2
##    group weight_kg
##    <fct>     <dbl>
##  1 ctrl    0.00417
##  2 ctrl    0.00558
##  3 ctrl    0.00518
##  4 ctrl    0.00611
##  5 ctrl    0.0045 
##  6 ctrl    0.00461
##  7 ctrl    0.00517
##  8 ctrl    0.00453
##  9 ctrl    0.00533
## 10 ctrl    0.00514
## 11 trt1    0.00481
## 12 trt1    0.00417
## 13 trt1    0.00441
## 14 trt1    0.00359
## 15 trt1    0.00587
## 16 trt1    0.00383
## 17 trt1    0.00603
## 18 trt1    0.00489
## 19 trt1    0.00432
## 20 trt1    0.00469
## 21 trt2    0.00631
## 22 trt2    0.00512
## 23 trt2    0.00554
## 24 trt2    0.0055 
## 25 trt2    0.00537
## 26 trt2    0.00529
## 27 trt2    0.00492
## 28 trt2    0.00615
## 29 trt2    0.0058 
## 30 trt2    0.00526
NewPlantGrowth %>% print (n=30)
## # A tibble: 30 × 2
##    group weight_kg
##    <fct>     <dbl>
##  1 ctrl    0.00417
##  2 ctrl    0.00558
##  3 ctrl    0.00518
##  4 ctrl    0.00611
##  5 ctrl    0.0045 
##  6 ctrl    0.00461
##  7 ctrl    0.00517
##  8 ctrl    0.00453
##  9 ctrl    0.00533
## 10 ctrl    0.00514
## 11 trt1    0.00481
## 12 trt1    0.00417
## 13 trt1    0.00441
## 14 trt1    0.00359
## 15 trt1    0.00587
## 16 trt1    0.00383
## 17 trt1    0.00603
## 18 trt1    0.00489
## 19 trt1    0.00432
## 20 trt1    0.00469
## 21 trt2    0.00631
## 22 trt2    0.00512
## 23 trt2    0.00554
## 24 trt2    0.0055 
## 25 trt2    0.00537
## 26 trt2    0.00529
## 27 trt2    0.00492
## 28 trt2    0.00615
## 29 trt2    0.0058 
## 30 trt2    0.00526