Import Data
df <- read.csv("data jantung.csv", sep = ";")
head(df)
## Usia Jenis.Kelamin Denyut.Jantung Tekanan.Darah.Sistolik
## 1 64 Laki-laki 66 160
## 2 21 Laki-laki 94 98
## 3 55 Laki-laki 64 160
## 4 64 Laki-laki 70 120
## 5 55 Laki-laki 64 112
## 6 58 Perempuan 61 112
## Tekanan.Darah.Distolik Gula.Darah CK.MB Troponin Hasil
## 1 83 160 1.80 0.012 Negatif
## 2 46 296 6.75 1.060 Positif
## 3 77 270 1.99 0.003 Negatif
## 4 55 270 13.87 0.122 Positif
## 5 65 300 1.08 0.003 Negatif
## 6 58 87 1.83 0.004 Negatif
colnames(df)
## [1] "Usia" "Jenis.Kelamin" "Denyut.Jantung"
## [4] "Tekanan.Darah.Sistolik" "Tekanan.Darah.Distolik" "Gula.Darah"
## [7] "CK.MB" "Troponin" "Hasil"
str(df)
## 'data.frame': 1178 obs. of 9 variables:
## $ Usia : int 64 21 55 64 55 58 32 44 67 44 ...
## $ Jenis.Kelamin : chr "Laki-laki" "Laki-laki" "Laki-laki" "Laki-laki" ...
## $ Denyut.Jantung : int 66 94 64 70 64 61 40 60 61 60 ...
## $ Tekanan.Darah.Sistolik: int 160 98 160 120 112 112 179 154 160 166 ...
## $ Tekanan.Darah.Distolik: int 83 46 77 55 65 58 68 81 95 90 ...
## $ Gula.Darah : num 160 296 270 270 300 87 102 135 100 102 ...
## $ CK.MB : num 1.8 6.75 1.99 13.87 1.08 ...
## $ Troponin : num 0.012 1.06 0.003 0.122 0.003 0.004 0.003 0.004 0.011 0.006 ...
## $ Hasil : chr "Negatif" "Positif" "Negatif" "Positif" ...
summary(df)
## Usia Jenis.Kelamin Denyut.Jantung Tekanan.Darah.Sistolik
## Min. : 14.00 Length:1178 Min. : 20.00 Min. : 42
## 1st Qu.: 47.00 Class :character 1st Qu.: 64.00 1st Qu.:110
## Median : 57.00 Mode :character Median : 74.00 Median :124
## Mean : 56.08 Mean : 75.91 Mean :127
## 3rd Qu.: 65.00 3rd Qu.: 85.00 3rd Qu.:144
## Max. :103.00 Max. :135.00 Max. :223
## Tekanan.Darah.Distolik Gula.Darah CK.MB Troponin
## Min. : 38.00 Min. : 35.0 Min. : 0.321 Min. :0.00200
## 1st Qu.: 62.00 1st Qu.: 97.0 1st Qu.: 1.643 1st Qu.:0.00600
## Median : 72.00 Median :113.5 Median : 2.840 Median :0.01400
## Mean : 72.38 Mean :132.6 Mean : 7.476 Mean :0.23380
## 3rd Qu.: 81.00 3rd Qu.:155.0 3rd Qu.: 5.330 3rd Qu.:0.07475
## Max. :154.00 Max. :300.0 Max. :99.620 Max. :4.25000
## Hasil
## Length:1178
## Class :character
## Mode :character
##
##
##
plot(
df$Usia,
df$Tekanan.Darah.Sistolik,
pch = 19,
col = "blue",
xlab = "Usia",
ylab = "Tekanan Darah Sistolik",
main = "Scatter Plot Usia vs Tekanan Darah Sistolik"
)

barplot(table(df$Hasil),
col = c("blue", "red"),
main = "Distribusi Hasil Pemeriksaan",
names.arg = c("Negatif", "Positif"),
ylab = "Jumlah")

num_data <- df[, c("Usia",
"Denyut.Jantung",
"Tekanan.Darah.Sistolik",
"Tekanan.Darah.Distolik",
"Gula.Darah",
"CK.MB",
"Troponin")]
heatmap(cor(num_data, use = "complete.obs"),
main = "Heatmap Korelasi Variabel",
Colv = NA, Rowv = NA)

boxplot(Usia ~ Hasil,
data = df,
col = c("lightblue", "red"),
main = "Perbandingan Usia Berdasarkan Hasil Pemeriksaan",
xlab = "Hasil (0 = Negatif, 1 = Positif)",
ylab = "Usia")

avg_usia <- tapply(df$Usia, df$Hasil, mean)
plot(avg_usia,
type = "o",
col = "red",
xaxt = "n",
xlab = "Hasil Pemeriksaan",
ylab = "Rata-Rata Usia",
main = "Rata-Rata Usia Berdasarkan Hasil")
axis(1, at = 1:2, labels = c("Negatif", "Positif"))
