R Markdown

databaru <- read.csv("data_kesehatan.csv")
head(databaru)
##   X id umur jenis_kelamin tinggi_badan berat_badan gula_darah tekanan_sistolik
## 1 1  1   33     Perempuan     159.5587    62.85027   80.08403         129.2978
## 2 2  2   59     Perempuan     152.9881    54.73592   79.20090         108.6373
## 3 3  3   39     Perempuan     156.1915    66.84162   99.64040         132.7729
## 4 4  4   64     Laki-laki     173.8024    54.83932   97.35650         108.7811
## 5 5  5   67     Perempuan     164.0242    62.21020   49.01314         129.4536
## 6 6  6   20     Perempuan     150.0967    61.15284  120.81147         136.4499
##   tekanan_diastolik kolesterol skor_kesehatan
## 1          69.13882   181.3293      100.00000
## 2          73.34697   209.6954      100.00000
## 3          87.14848   176.3801       88.52949
## 4          75.68339   172.1841      100.00000
## 5          82.27615   138.6886      100.00000
## 6          92.94946   183.7165       75.39378
# Lihat struktur data
str(databaru)
## 'data.frame':    200 obs. of  11 variables:
##  $ X                : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ id               : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ umur             : int  33 59 39 64 67 20 45 64 47 42 ...
##  $ jenis_kelamin    : chr  "Perempuan" "Perempuan" "Perempuan" "Laki-laki" ...
##  $ tinggi_badan     : num  160 153 156 174 164 ...
##  $ berat_badan      : num  62.9 54.7 66.8 54.8 62.2 ...
##  $ gula_darah       : num  80.1 79.2 99.6 97.4 49 ...
##  $ tekanan_sistolik : num  129 109 133 109 129 ...
##  $ tekanan_diastolik: num  69.1 73.3 87.1 75.7 82.3 ...
##  $ kolesterol       : num  181 210 176 172 139 ...
##  $ skor_kesehatan   : num  100 100 88.5 100 100 ...
airquality$Solar.R[is.na(airquality$Solar.R)] <- median(airquality$Solar.R, na.rm = TRUE)
colSums(is.na(airquality))
##   Ozone Solar.R    Wind    Temp   Month     Day 
##      37       0       0       0       0       0
FileBaru <- data.frame(datasets::Titanic)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
Titanic_selected <- select(FileBaru, Class, Sex, Survived)
head(Titanic_selected)
##   Class    Sex Survived
## 1   1st   Male       No
## 2   2nd   Male       No
## 3   3rd   Male       No
## 4  Crew   Male       No
## 5   1st Female       No
## 6   2nd Female       No
library(dplyr)
# Filter penumpang anak-anak
Titanic_child <- filter(FileBaru, Age == "Adult")
head(Titanic_child)
##   Class    Sex   Age Survived Freq
## 1   1st   Male Adult       No  118
## 2   2nd   Male Adult       No  154
## 3   3rd   Male Adult       No  387
## 4  Crew   Male Adult       No  670
## 5   1st Female Adult       No    4
## 6   2nd Female Adult       No   13
# Urutkan berdasarkan frekuensi (ascending: kecil → besar)
Titanic_sorted_asc <- arrange(FileBaru, Freq)

head(Titanic_sorted_asc)
##   Class    Sex   Age Survived Freq
## 1   1st   Male Child       No    0
## 2   2nd   Male Child       No    0
## 3  Crew   Male Child       No    0
## 4   1st Female Child       No    0
## 5   2nd Female Child       No    0
## 6  Crew Female Child       No    0
# Ganti nama kolom
titanic_rename <- rename(FileBaru, Umur = Age)
titanic_rename
##    Class    Sex  Umur Survived Freq
## 1    1st   Male Child       No    0
## 2    2nd   Male Child       No    0
## 3    3rd   Male Child       No   35
## 4   Crew   Male Child       No    0
## 5    1st Female Child       No    0
## 6    2nd Female Child       No    0
## 7    3rd Female Child       No   17
## 8   Crew Female Child       No    0
## 9    1st   Male Adult       No  118
## 10   2nd   Male Adult       No  154
## 11   3rd   Male Adult       No  387
## 12  Crew   Male Adult       No  670
## 13   1st Female Adult       No    4
## 14   2nd Female Adult       No   13
## 15   3rd Female Adult       No   89
## 16  Crew Female Adult       No    3
## 17   1st   Male Child      Yes    5
## 18   2nd   Male Child      Yes   11
## 19   3rd   Male Child      Yes   13
## 20  Crew   Male Child      Yes    0
## 21   1st Female Child      Yes    1
## 22   2nd Female Child      Yes   13
## 23   3rd Female Child      Yes   14
## 24  Crew Female Child      Yes    0
## 25   1st   Male Adult      Yes   57
## 26   2nd   Male Adult      Yes   14
## 27   3rd   Male Adult      Yes   75
## 28  Crew   Male Adult      Yes  192
## 29   1st Female Adult      Yes  140
## 30   2nd Female Adult      Yes   80
## 31   3rd Female Adult      Yes   76
## 32  Crew Female Adult      Yes   20
# Tambahkan kolom proporsi
FileBaru_mutate <- mutate(FileBaru, Proporsi = Freq / sum(Freq))
head(FileBaru_mutate)
##   Class    Sex   Age Survived Freq   Proporsi
## 1   1st   Male Child       No    0 0.00000000
## 2   2nd   Male Child       No    0 0.00000000
## 3   3rd   Male Child       No   35 0.01590186
## 4  Crew   Male Child       No    0 0.00000000
## 5   1st Female Child       No    0 0.00000000
## 6   2nd Female Child       No    0 0.00000000
# Buat data tambahan
extra <- data.frame(
  Class = c("1st","2nd","3rd","Crew"),
  Kapal = c("Titanic","Titanic","Titanic","Titanic")
)

# Join ke dataset titanic
FileBaru_joined <- left_join(FileBaru, extra, by = "Class")

head(FileBaru_joined)
##   Class    Sex   Age Survived Freq   Kapal
## 1   1st   Male Child       No    0 Titanic
## 2   2nd   Male Child       No    0 Titanic
## 3   3rd   Male Child       No   35 Titanic
## 4  Crew   Male Child       No    0 Titanic
## 5   1st Female Child       No    0 Titanic
## 6   2nd Female Child       No    0 Titanic
# Hitung total penumpang selamat vs tidak berdasarkan kelas
FileBaru_summary <- FileBaru %>%
  group_by(Sex, Survived) %>%
  summarise(total = sum(Freq))
## `summarise()` has regrouped the output.
## ℹ Summaries were computed grouped by Sex and Survived.
## ℹ Output is grouped by Sex.
## ℹ Use `summarise(.groups = "drop_last")` to silence this message.
## ℹ Use `summarise(.by = c(Sex, Survived))` for per-operation grouping
##   (`?dplyr::dplyr_by`) instead.
FileBaru_summary
## # A tibble: 4 × 3
## # Groups:   Sex [2]
##   Sex    Survived total
##   <fct>  <fct>    <dbl>
## 1 Male   No        1364
## 2 Male   Yes        367
## 3 Female No         126
## 4 Female Yes        344
set.seed(123)

# Buat indeks sampling 30%
index <- sample(1:nrow(FileBaru), 0.3*nrow(FileBaru))

train_data <- FileBaru[index, ]
test_data  <- FileBaru[-index, ]

nrow(train_data); nrow(test_data)
## [1] 9
## [1] 23