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