data <- read.csv("data_kesehatan.csv")
head(data)
##   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
summary(data)
##        X                id              umur       jenis_kelamin     
##  Min.   :  1.00   Min.   :  1.00   Min.   :18.00   Length:200        
##  1st Qu.: 50.75   1st Qu.: 50.75   1st Qu.:32.00   Class :character  
##  Median :100.50   Median :100.50   Median :43.00   Mode  :character  
##  Mean   :100.50   Mean   :100.50   Mean   :44.31                     
##  3rd Qu.:150.25   3rd Qu.:150.25   3rd Qu.:56.00                     
##  Max.   :200.00   Max.   :200.00   Max.   :70.00                     
##   tinggi_badan    berat_badan      gula_darah     tekanan_sistolik
##  Min.   :143.1   Min.   :39.94   Min.   : 49.01   Min.   : 85.29  
##  1st Qu.:159.4   1st Qu.:57.82   1st Qu.: 86.74   1st Qu.:108.77  
##  Median :165.1   Median :63.35   Median :100.44   Median :119.92  
##  Mean   :165.8   Mean   :64.75   Mean   :101.01   Mean   :119.53  
##  3rd Qu.:171.7   3rd Qu.:72.17   3rd Qu.:111.90   3rd Qu.:129.62  
##  Max.   :186.9   Max.   :96.92   Max.   :163.68   Max.   :170.86  
##  tekanan_diastolik   kolesterol     skor_kesehatan  
##  Min.   : 53.05    Min.   : 98.56   Min.   : 45.45  
##  1st Qu.: 74.21    1st Qu.:172.44   1st Qu.: 84.30  
##  Median : 81.64    Median :190.25   Median : 92.92  
##  Mean   : 80.64    Mean   :191.80   Mean   : 89.61  
##  3rd Qu.: 87.18    3rd Qu.:216.47   3rd Qu.:100.00  
##  Max.   :102.84    Max.   :288.72   Max.   :100.00
rata_tinggi <- aggregate(tinggi_badan ~ jenis_kelamin, data, mean)

rata_tinggi
##   jenis_kelamin tinggi_badan
## 1     Laki-laki     171.0215
## 2     Perempuan     159.6470
responden_sehat <- subset(data,
  gula_darah < 110 &
  kolesterol < 200 &
  tekanan_sistolik < 130 &
  tekanan_diastolik < 85
)
jumlah_sehat <- nrow(responden_sehat)
print(paste("Jumlah responden sehat:", jumlah_sehat))
## [1] "Jumlah responden sehat: 48"
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
data <- data %>%
  mutate(kelompok_umur = case_when(
    umur < 30 ~ "<30",
    umur >= 30 & umur <= 50 ~ "30-50",
    umur > 50 ~ ">50"
  ))

rata_skor <- data %>%
  group_by(kelompok_umur) %>%
  summarise(rata_skor_kesehatan = round(mean(skor_kesehatan, na.rm = TRUE), 1))

rata_skor
## # A tibble: 3 × 2
##   kelompok_umur rata_skor_kesehatan
##   <chr>                       <dbl>
## 1 30-50                        89.4
## 2 <30                          90.4
## 3 >50                          89.5
terendah <- data %>%
  filter(gula_darah == min(gula_darah, na.rm = TRUE)) %>%
  select(id, gula_darah)
terendah
##   id gula_darah
## 1  5   49.01314
data <- data %>%
  mutate(BMI = berat_badan / (tinggi_badan / 100)^2)

obesitas <- data %>%
  filter(BMI > 30)

rata_skor_obesitas <- mean(obesitas$skor_kesehatan, na.rm = TRUE)
print(round(rata_skor_obesitas, 1))
## [1] 74.9