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