A: Data Cuaca
suhu <- c(32, 33, 31, 34, 35, 30, 29, 33, 32, 34)
mean(suhu) #rata-rata
## [1] 32.3
median(suhu) #median
## [1] 32.5
sd(suhu) #standar deviasi
## [1] 1.888562
which.max(suhu) #indeks hari suhu tertinggi
## [1] 5
sum(suhu > mean(suhu)) #jumlah hari di atas rata-rata
## [1] 5
B: Data Transportasi
penumpang <- c(45, 52, 49, 60, 55, 70, 65)
hari <- c("Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu")
df_transport <- data.frame(hari, penumpang)
mean(penumpang[1:5]) #rata-rata hari kerja
## [1] 52.2
hari[which.max(penumpang)] #hari dengan penumpang terbanyak
## [1] "Sabtu"
((penumpang[6]-penumpang[1])/penumpang[1])*100 #persen peningkatan
## [1] 55.55556
C: Data Ekonomi
harga_beras <- c(12000, 12200, 12150, 12300, 12400, 12500, 12600, 12750)
minggu <- 1:8
df_beras <- data.frame(minggu, harga_beras)
mean(diff(harga_beras)) #rata-rata kenaikan per minggu
## [1] 107.1429
diff(harga_beras) #selisih antar minggu
## [1] 200 -50 150 100 100 100 150
which.max(diff(harga_beras)) #minggu dengan kenaikan tertinggi
## [1] 1
D: Matriks Populasi
populasi <- matrix(c(
50, 55, 60, 65, # Kecamatan A
40, 42, 45, 47, # Kecamatan B
70, 72, 74, 76 # Kecamatan C
), nrow=3, byrow=TRUE)
rownames(populasi) <- c("Kec_A","Kec_B","Kec_C")
colnames(populasi) <- c("2019","2020","2021","2022")
apply(populasi, 1, mean) #rata-rata tiap kecamatan
## Kec_A Kec_B Kec_C
## 57.5 43.5 73.0
rownames(populasi)[which.max(populasi[,4])] #kecamatan tertinggi 2022
## [1] "Kec_C"
colSums(populasi) #total penduduk tiap tahun
## 2019 2020 2021 2022
## 160 169 179 188
E: Fungsi Customs
deteksi_kenaikan <- function(harga) {
which(diff(harga) > 200) + 1
}
deteksi_kenaikan(harga_beras)
## numeric(0)