library(dplyr)
##
## 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
library(ggplot2)
data_kesehatan <- read.csv("data_kesehatan.csv")
head(data_kesehatan)
## 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
rata_rata_umur <- aggregate(umur ~ 1, data = data_kesehatan, mean)
print(rata_rata_umur)
## umur
## 1 44.315
rata_rata_tinggi_badan <- aggregate(tinggi_badan ~ jenis_kelamin, data = data_kesehatan, mean)
print(rata_rata_tinggi_badan)
## jenis_kelamin tinggi_badan
## 1 Laki-laki 171.0215
## 2 Perempuan 159.6470
selisih_tinggi <- 171.0215 - 159.6470
print(selisih_tinggi)
## [1] 11.3745
rata_rata_skor_kesehatan <- data_kesehatan %>%
mutate(kelompok_umur = case_when(
umur < 30 ~ "<30",
umur >= 30 & umur <= 50 ~ "30-50",
umur > 50 ~ ">50"
)) %>%
group_by(kelompok_umur) %>%
summarise(rata_rata_skor_kesehatan = mean(skor_kesehatan)) %>%
arrange(factor(kelompok_umur, levels = c("<30", "30-50", ">50")))
rata_rata_skor_kesehatan
## # A tibble: 3 × 2
## kelompok_umur rata_rata_skor_kesehatan
## <chr> <dbl>
## 1 <30 90.4
## 2 30-50 89.4
## 3 >50 89.5
gula_terendah <- data_kesehatan %>%
filter(gula_darah == min(gula_darah))
gula_terendah %>% select(id, umur, jenis_kelamin, gula_darah)
## id umur jenis_kelamin gula_darah
## 1 5 67 Perempuan 49.01314
rata_rata_skor_kesehatan_kolesterol <- subset(data_kesehatan, kolesterol < 200 & gula_darah < 110)
rata_rata_skor <- mean(rata_rata_skor_kesehatan_kolesterol$skor_kesehatan)
rata_rata_skor
## [1] 96.57272
data_kesehatan$BMI <- data_kesehatan$berat_badan / (data_kesehatan$tinggi_badan / 100)^2
data_obesitas <- subset(data_kesehatan, BMI > 30)
rata_rata_skor <- mean(data_obesitas$skor_kesehatan)
rata_rata_skor
## [1] 74.92593