data <- readxl::read_excel ("data_kesehatan.xlsx")

head(data)
## # A tibble: 6 × 10
##      id  umur jenis_kelamin tinggi_badan berat_badan gula_darah tekanan_sistolik
##   <dbl> <dbl> <chr>                <dbl>       <dbl>      <dbl>            <dbl>
## 1     1    33 Perempuan             160.        62.9       80.1             129.
## 2     2    59 Perempuan             153.        54.7       79.2             109.
## 3     3    39 Perempuan             156.        66.8       99.6             133.
## 4     4    64 Laki-laki             174.        54.8       97.4             109.
## 5     5    67 Perempuan             164.        62.2       49.0             129.
## 6     6    20 Perempuan             150.        61.2      121.              136.
## # ℹ 3 more variables: tekanan_diastolik <dbl>, kolesterol <dbl>,
## #   skor_kesehatan <dbl>
sehat <- subset(data,
                gula_darah < 110 &
                kolesterol < 200 &
                tekanan_sistolik < 130 &
                tekanan_diastolik < 85)
jumlah_sehat <- nrow(sehat)
print(jumlah_sehat)
## [1] 48
data$Kategori_umur<- cut(data$umur,
                                        breaks = c(-Inf, 30, 50, Inf),
                                        labels = c("<30", "30-50", ">50"))
table(data$Kategori_umur)
## 
##   <30 30-50   >50 
##    42    85    73
aggregate(skor_kesehatan ~ Kategori_umur, data = data, mean)
##   Kategori_umur skor_kesehatan
## 1           <30       90.56762
## 2         30-50       89.21351
## 3           >50       89.53153
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 %>%
  arrange(gula_darah) %>%    
  slice(1)
## # A tibble: 1 × 11
##      id  umur jenis_kelamin tinggi_badan berat_badan gula_darah tekanan_sistolik
##   <dbl> <dbl> <chr>                <dbl>       <dbl>      <dbl>            <dbl>
## 1     5    67 Perempuan             164.        62.2       49.0             129.
## # ℹ 4 more variables: tekanan_diastolik <dbl>, kolesterol <dbl>,
## #   skor_kesehatan <dbl>, Kategori_umur <fct>
data %>%
  mutate(BMI = berat_badan / (tinggi_badan / 100)^2) %>%  
  filter(BMI > 30) %>%                                    
  summarise(rata_skor = mean(skor_kesehatan, na.rm = TRUE))
## # A tibble: 1 × 1
##   rata_skor
##       <dbl>
## 1      74.9