R Markdown

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
str(data_kesehatan)
## 'data.frame':    200 obs. of  11 variables:
##  $ X                : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ id               : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ umur             : int  33 59 39 64 67 20 45 64 47 42 ...
##  $ jenis_kelamin    : chr  "Perempuan" "Perempuan" "Perempuan" "Laki-laki" ...
##  $ tinggi_badan     : num  160 153 156 174 164 ...
##  $ berat_badan      : num  62.9 54.7 66.8 54.8 62.2 ...
##  $ gula_darah       : num  80.1 79.2 99.6 97.4 49 ...
##  $ tekanan_sistolik : num  129 109 133 109 129 ...
##  $ tekanan_diastolik: num  69.1 73.3 87.1 75.7 82.3 ...
##  $ kolesterol       : num  181 210 176 172 139 ...
##  $ skor_kesehatan   : num  100 100 88.5 100 100 ...
aggregate(umur ~ jenis_kelamin, data = data_kesehatan, mean)
##   jenis_kelamin     umur
## 1     Laki-laki 44.02778
## 2     Perempuan 44.65217

Apakah terdapat perbedaan rata-rata tinggi badan antara laki-laki dan perempuan?

aggregate(tinggi_badan ~ jenis_kelamin, data = data_kesehatan, mean)
##   jenis_kelamin tinggi_badan
## 1     Laki-laki     171.0215
## 2     Perempuan     159.6470

Berapa jumlah responden yang memenuhi semua indikator sehat (gula <110, kolesterol <200, tekanan <130/85)?

q1 <- data_kesehatan %>%
  filter(gula_darah<110, kolesterol<200, tekanan_sistolik<130, tekanan_diastolik<85) %>%
  group_by(jenis_kelamin) %>%
  summarise(jumlah=n())
q1
## # A tibble: 2 × 2
##   jenis_kelamin jumlah
##   <chr>          <int>
## 1 Laki-laki         25
## 2 Perempuan         23

Bagaimana rata-rata skor kesehatan per kelompok umur, <30, 30-50, dan >50 tahun secara berturut-turut?

data <- read.csv("data_kesehatan.csv")

data$kelompok_umur <- cut(
  data$umur,
  breaks = c(0, 29, 50, 120),
  labels = c("<30", "30-50", ">50"),
  right = TRUE
)

rata_skor <- aggregate(skor_kesehatan ~ kelompok_umur, data = data, mean)
print(rata_skor)
##   kelompok_umur skor_kesehatan
## 1           <30       90.37880
## 2         30-50       89.35499
## 3           >50       89.53153

Siapakah yang memiliki gula darah terendah?

data_kesehatan[order(+data_kesehatan$gula_darah), c("id", "gula_darah")] |> head(1)
##   id gula_darah
## 5  5   49.01314