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