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_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
table(data_kesehatan$jenis_kelamin)
## 
## Laki-laki Perempuan 
##       108        92
mean(data_kesehatan$umur)
## [1] 44.315
library(dplyr)
data_kesehatan %>%
  arrange(skor_kesehatan) %>%
  head(5) %>%
  select(id)
##    id
## 1  49
## 2  11
## 3  70
## 4 193
## 5 176
library(dplyr)
rata_rata_per_kelompok <- data_kesehatan %>%
  mutate(
    kelompok_umur = case_when(
      umur < 30        ~ "<30 tahun",
      umur >= 30 & umur <= 50 ~ "30-50 tahun",
      umur > 50        ~ ">50 tahun",
      TRUE ~ "Lainnya" 
    )
  ) %>%
  group_by(kelompok_umur) %>%
  summarise(
    rata_skor = mean(skor_kesehatan, na.rm = TRUE)
  )

print(rata_rata_per_kelompok)
## # A tibble: 3 × 2
##   kelompok_umur rata_skor
##   <chr>             <dbl>
## 1 30-50 tahun        89.4
## 2 <30 tahun          90.4
## 3 >50 tahun          89.5
library(dplyr)
data_kesehatan %>%
  arrange(gula_darah) %>% 
  head(1) %>%            
  select(id, gula_darah)  
##   id gula_darah
## 1  5   49.01314
library(dplyr)

rata_rata_bersyarat <- data_kesehatan %>%
 
  filter(kolesterol < 200 & gula_darah < 110) %>%
  
  summarise(
    rata_skor = mean(skor_kesehatan, na.rm = TRUE)
  )

print(rata_rata_bersyarat)
##   rata_skor
## 1  96.57272
library(dplyr)

rata_rata_obesitas <- data_kesehatan %>%
  mutate(
    tinggi_m = tinggi_badan / 100,
    bmi = berat_badan / (tinggi_m^2)
  ) %>%
  
  filter(bmi > 30) %>%
  
  summarise(
    rata_skor = mean(skor_kesehatan, na.rm = TRUE)
  )
print(rata_rata_obesitas)
##   rata_skor
## 1  74.92593