Data suhu rata-rata harian (°C) di Semarang selama 10 hari terakhir dicatat sebagai berikut:
suhu <- c(32, 33, 31, 34, 35, 30, 29, 33, 32, 34)
mean(suhu)
## [1] 32.3
median(suhu)
## [1] 32.5
sd(suhu)
## [1] 1.888562
Jadi rata-rata suhu adalah 32,3°C, median suhu adalah 32,5°C, dan standar deviasi suhu adalah 1,8888562°C.
which.max(suhu)
## [1] 5
max(suhu)
## [1] 35
Suhu tertinggi terjadi pada hari ke-5 dengan suhu 35°C.
Jumlah_hari_di_atas_rata_rata <- sum(suhu > mean(suhu))
Hari_hari_yang_di_atas_rata_rata <- suhu > mean(suhu)
Jumlah_hari_di_atas_rata_rata
## [1] 5
Hari_hari_yang_di_atas_rata_rata
## [1] FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE
which(suhu > mean(suhu))
## [1] 2 4 5 8 10
Suhu berada di atas rata-rata di 5 hari yaitu hari ke-2, 4, 5, 8, 10.
Jumlah penumpang Trans Semarang (dalam ribuan orang) selama 7 hari:
penumpang <- c(45, 52, 49, 60, 55, 70, 65)
hari <- c("Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu")
df_transport <- data.frame(hari, penumpang)
df_transport
## hari penumpang
## 1 Senin 45
## 2 Selasa 52
## 3 Rabu 49
## 4 Kamis 60
## 5 Jumat 55
## 6 Sabtu 70
## 7 Minggu 65
mean(df_transport$penumpang[1:5])
## [1] 52.2
Rata-rata jumlah penumpang pada hari kerja adalah 52,2 ribu orang.
indeks_terbanyak <- which.max(df_transport$penumpang)
df_transport[indeks_terbanyak, ]
## hari penumpang
## 6 Sabtu 70
Jumlah penumpang terbanyak terjadi pada Sabtu, yaitu 70 ribu orang.
Persentase peningkatan dihitung menggunakan jumlah penumpang Senin sebagai nilai awal: \[ \text{Peningkatan (%)} = \frac{\text{Penumpang Sabtu} - \text{Penumpang Senin}} {\text{Penumpang Senin}} \times 100\%. \]
round(((penumpang[6] - penumpang[1]) / penumpang[1]) * 100, 2)
## [1] 55.56
Peningkatan jumlah penumpang dari Senin ke Sabtu adalah 55,56%.
Harga beras (Rp/kg) di pasar tradisional selama 8 minggu:
harga_beras <- c(12000, 12200, 12150, 12300, 12400, 12500, 12600, 12750)
minggu <- 1:8
df_beras <- data.frame(minggu, harga_beras)
df_beras
## minggu harga_beras
## 1 1 12000
## 2 2 12200
## 3 3 12150
## 4 4 12300
## 5 5 12400
## 6 6 12500
## 7 7 12600
## 8 8 12750
mean(diff(harga_beras))
## [1] 107.1429
Rata-rata perubahan harga beras adalah Rp107,1429/kg per minggu.
diff(harga_beras)
## [1] 200 -50 150 100 100 100 150
Hilangkan Minggu 1 untuk mencari Minggu dengan kenaikan tertinggi.
max(diff(harga_beras))
## [1] 200
which.max(diff(harga_beras))
## [1] 1
Kenaikan terbesar terjadi dari Minggu 1 ke Minggu 2, dengan kenaikan Rp200/kg.
Data jumlah penduduk (dalam ribuan) di 3 kecamatan (A, B, C) selama 4 tahun terakhir:
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")
populasi
## 2019 2020 2021 2022
## Kec_A 50 55 60 65
## Kec_B 40 42 45 47
## Kec_C 70 72 74 76
Pertumbuhan penduduk tiap kecamatan:
apply(populasi, 1, function(x) {diff(x)})
## Kec_A Kec_B Kec_C
## 2020 5 2 2
## 2021 5 3 2
## 2022 5 2 2
Rata_rata pertumbuhan penduduk tiap kecamatan:
apply(populasi, 1, function(x) {mean(diff(x))})
## Kec_A Kec_B Kec_C
## 5.000000 2.333333 2.000000
Pertambahan penduduk rata-rata Kecamatan A adalah 5 ribu jiwa per tahun, Kecamatan B 2,33 ribu jiwa per tahun, dan Kecamatan C 2 ribu jiwa per tahun.
rownames(populasi)[which.max(populasi[, "2022"])]
## [1] "Kec_C"
max(populasi [, "2022"])
## [1] 76
Kecamatan dengan populasi tertinggi adalah Kecamatan C dengan populasi 76 ribu jiwa.
apply(populasi, 2, sum)
## 2019 2020 2021 2022
## 160 169 179 188
Total penduduk pada tahun 2019 adalah 160 ribu jiwa, tahun 2020 adalah 169 ribu jiwa, tahun 2021 adalah 179 ribu jiwa, dan tahun 2022 adalah 188 ribu jiwa.
deteksi_kenaikan <- function(harga) {
selisih <- diff(harga)
which(selisih > 200)
}
deteksi_kenaikan(harga_beras)
## integer(0)
Tidak terdapat minggu yang mengalami kenaikan harga lebih dari Rp200/kg.