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
dataset_pendidikan <- read.csv("C:/Users/HP/OneDrive/ドキュメント/h/rsconnect/dataset_pendidikan.csv")
head(dataset_pendidikan)
## ID_Mahasiswa IPK Semester Total_Kehadiran Total_Jam_Belajar Rata2_Jam_Tidur
## 1 MHS001 3.45 2 58 238 7.5
## 2 MHS002 3.13 5 54 246 7.1
## 3 MHS003 2.75 4 61 91 7.0
## 4 MHS004 3.52 4 67 162 6.6
## 5 MHS005 3.57 4 56 258 7.4
## 6 MHS006 3.52 7 56 222 7.5
#jumlah mahasiswa yang memiliki IPK lebih besar atau sama dengan 3,5
dataset_pendidikan %>%
filter(IPK >= 3.5) %>%
nrow()
## [1] 49
#top 3 IPK tertinggi
dataset_pendidikan %>%
arrange(desc(IPK)) %>%
head(3)
## ID_Mahasiswa IPK Semester Total_Kehadiran Total_Jam_Belajar Rata2_Jam_Tidur
## 1 MHS052 4 4 70 377 6.8
## 2 MHS111 4 6 61 258 7.2
## 3 MHS123 4 4 66 341 6.2
#mahasiswa yang masuk kategori “Baik”
dataset_pendidikan_kategori<- dataset_pendidikan %>%
mutate(kategori_IPK = case_when(
IPK<2.50 ~ "Kurang",
IPK>= 2.50 & IPK<= 2.99 ~ "Cukup",
IPK>=3.00 & IPK<= 3.49 ~ "Baik",
IPK>= 3.50 ~ "Sangat Baik"
))
dataset_pendidikan_kategori%>%
filter(kategori_IPK == "Baik")%>%
count()
## n
## 1 71
#Semester yang rata-rata IPK-nya tertinggi
dataset_pendidikan %>%
group_by(Semester)%>%
summarise(Rata_rata_IPK= mean(IPK, na.rm= TRUE)) %>%
slice_max(Rata_rata_IPK, n=1)
## # A tibble: 1 × 2
## Semester Rata_rata_IPK
## <int> <dbl>
## 1 4 3.20
#Jumlah pertemuan per semester adalah 70 (= 100%). Buat kolom Persen_Kehadiran = Total_Kehadiran / 70 * 100. Berapa mahasiswa yang kehadirannya kurang dari 75%?
dataset_pendidikan %>%
mutate(Persen_Kehadiran = (Total_Kehadiran / 70)* 100) %>%
filter(Persen_Kehadiran < 75) %>%
count()
## n
## 1 40
#Mahasiswa “rajin tapi IPK rendah” didefinisikan sebagai jam belajar di atas median DAN IPK di bawah rata-rata IPK seluruh mahasiswa. Berapa jumlahnya?
#Median jam belajar dan rata_rata IPK
median_jam <- median(dataset_pendidikan$Total_Jam_Belajar, na.rm = TRUE)
mean_IPK <- mean(dataset_pendidikan$IPK, na.rm = TRUE)
#Filter mahasiswa rajin tapi IPK rendah
dataset_pendidikan %>%
filter(Total_Jam_Belajar > median_jam & IPK < mean_IPK) %>%
count()
## n
## 1 17