library(readxl)
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
df_mahasiswa <- read_excel("df_mahasiswa.xlsx")
head(df_mahasiswa)
## # A tibble: 6 × 6
##   id_mahasiswa jenis_kelamin jam_belajar_per_hari frekuensi_login_lms
##   <chr>        <chr>                        <dbl>               <dbl>
## 1 MHS001       L                                4                   1
## 2 MHS002       P                                4                   2
## 3 MHS003       P                                2                   6
## 4 MHS004       P                                5                   3
## 5 MHS005       L                                3                   2
## 6 MHS006       L                                3                   7
## # ℹ 2 more variables: motivasi_belajar <dbl>, ipk <dbl>
df_mahasiswa
## # A tibble: 55 × 6
##    id_mahasiswa jenis_kelamin jam_belajar_per_hari frekuensi_login_lms
##    <chr>        <chr>                        <dbl>               <dbl>
##  1 MHS001       L                                4                   1
##  2 MHS002       P                                4                   2
##  3 MHS003       P                                2                   6
##  4 MHS004       P                                5                   3
##  5 MHS005       L                                3                   2
##  6 MHS006       L                                3                   7
##  7 MHS007       P                                1                   7
##  8 MHS008       L                                3                   4
##  9 MHS009       P                                2                   6
## 10 MHS010       L                                1                   5
## # ℹ 45 more rows
## # ℹ 2 more variables: motivasi_belajar <dbl>, ipk <dbl>
library(readxl)
str(df_mahasiswa)
## tibble [55 × 6] (S3: tbl_df/tbl/data.frame)
##  $ id_mahasiswa        : chr [1:55] "MHS001" "MHS002" "MHS003" "MHS004" ...
##  $ jenis_kelamin       : chr [1:55] "L" "P" "P" "P" ...
##  $ jam_belajar_per_hari: num [1:55] 4 4 2 5 3 3 1 3 2 1 ...
##  $ frekuensi_login_lms : num [1:55] 1 2 6 3 2 7 7 4 6 5 ...
##  $ motivasi_belajar    : num [1:55] 82 73 71 98 81 61 44 69 44 46 ...
##  $ ipk                 : num [1:55] 3.12 3.45 3.07 3.43 2.83 3.1 2.98 3.08 2.82 2.93 ...
library(readxl)
any(is.na(df_mahasiswa))
## [1] FALSE
library(readxl)
is.na(df_mahasiswa)
##       id_mahasiswa jenis_kelamin jam_belajar_per_hari frekuensi_login_lms
##  [1,]        FALSE         FALSE                FALSE               FALSE
##  [2,]        FALSE         FALSE                FALSE               FALSE
##  [3,]        FALSE         FALSE                FALSE               FALSE
##  [4,]        FALSE         FALSE                FALSE               FALSE
##  [5,]        FALSE         FALSE                FALSE               FALSE
##  [6,]        FALSE         FALSE                FALSE               FALSE
##  [7,]        FALSE         FALSE                FALSE               FALSE
##  [8,]        FALSE         FALSE                FALSE               FALSE
##  [9,]        FALSE         FALSE                FALSE               FALSE
## [10,]        FALSE         FALSE                FALSE               FALSE
## [11,]        FALSE         FALSE                FALSE               FALSE
## [12,]        FALSE         FALSE                FALSE               FALSE
## [13,]        FALSE         FALSE                FALSE               FALSE
## [14,]        FALSE         FALSE                FALSE               FALSE
## [15,]        FALSE         FALSE                FALSE               FALSE
## [16,]        FALSE         FALSE                FALSE               FALSE
## [17,]        FALSE         FALSE                FALSE               FALSE
## [18,]        FALSE         FALSE                FALSE               FALSE
## [19,]        FALSE         FALSE                FALSE               FALSE
## [20,]        FALSE         FALSE                FALSE               FALSE
## [21,]        FALSE         FALSE                FALSE               FALSE
## [22,]        FALSE         FALSE                FALSE               FALSE
## [23,]        FALSE         FALSE                FALSE               FALSE
## [24,]        FALSE         FALSE                FALSE               FALSE
## [25,]        FALSE         FALSE                FALSE               FALSE
## [26,]        FALSE         FALSE                FALSE               FALSE
## [27,]        FALSE         FALSE                FALSE               FALSE
## [28,]        FALSE         FALSE                FALSE               FALSE
## [29,]        FALSE         FALSE                FALSE               FALSE
## [30,]        FALSE         FALSE                FALSE               FALSE
## [31,]        FALSE         FALSE                FALSE               FALSE
## [32,]        FALSE         FALSE                FALSE               FALSE
## [33,]        FALSE         FALSE                FALSE               FALSE
## [34,]        FALSE         FALSE                FALSE               FALSE
## [35,]        FALSE         FALSE                FALSE               FALSE
## [36,]        FALSE         FALSE                FALSE               FALSE
## [37,]        FALSE         FALSE                FALSE               FALSE
## [38,]        FALSE         FALSE                FALSE               FALSE
## [39,]        FALSE         FALSE                FALSE               FALSE
## [40,]        FALSE         FALSE                FALSE               FALSE
## [41,]        FALSE         FALSE                FALSE               FALSE
## [42,]        FALSE         FALSE                FALSE               FALSE
## [43,]        FALSE         FALSE                FALSE               FALSE
## [44,]        FALSE         FALSE                FALSE               FALSE
## [45,]        FALSE         FALSE                FALSE               FALSE
## [46,]        FALSE         FALSE                FALSE               FALSE
## [47,]        FALSE         FALSE                FALSE               FALSE
## [48,]        FALSE         FALSE                FALSE               FALSE
## [49,]        FALSE         FALSE                FALSE               FALSE
## [50,]        FALSE         FALSE                FALSE               FALSE
## [51,]        FALSE         FALSE                FALSE               FALSE
## [52,]        FALSE         FALSE                FALSE               FALSE
## [53,]        FALSE         FALSE                FALSE               FALSE
## [54,]        FALSE         FALSE                FALSE               FALSE
## [55,]        FALSE         FALSE                FALSE               FALSE
##       motivasi_belajar   ipk
##  [1,]            FALSE FALSE
##  [2,]            FALSE FALSE
##  [3,]            FALSE FALSE
##  [4,]            FALSE FALSE
##  [5,]            FALSE FALSE
##  [6,]            FALSE FALSE
##  [7,]            FALSE FALSE
##  [8,]            FALSE FALSE
##  [9,]            FALSE FALSE
## [10,]            FALSE FALSE
## [11,]            FALSE FALSE
## [12,]            FALSE FALSE
## [13,]            FALSE FALSE
## [14,]            FALSE FALSE
## [15,]            FALSE FALSE
## [16,]            FALSE FALSE
## [17,]            FALSE FALSE
## [18,]            FALSE FALSE
## [19,]            FALSE FALSE
## [20,]            FALSE FALSE
## [21,]            FALSE FALSE
## [22,]            FALSE FALSE
## [23,]            FALSE FALSE
## [24,]            FALSE FALSE
## [25,]            FALSE FALSE
## [26,]            FALSE FALSE
## [27,]            FALSE FALSE
## [28,]            FALSE FALSE
## [29,]            FALSE FALSE
## [30,]            FALSE FALSE
## [31,]            FALSE FALSE
## [32,]            FALSE FALSE
## [33,]            FALSE FALSE
## [34,]            FALSE FALSE
## [35,]            FALSE FALSE
## [36,]            FALSE FALSE
## [37,]            FALSE FALSE
## [38,]            FALSE FALSE
## [39,]            FALSE FALSE
## [40,]            FALSE FALSE
## [41,]            FALSE FALSE
## [42,]            FALSE FALSE
## [43,]            FALSE FALSE
## [44,]            FALSE FALSE
## [45,]            FALSE FALSE
## [46,]            FALSE FALSE
## [47,]            FALSE FALSE
## [48,]            FALSE FALSE
## [49,]            FALSE FALSE
## [50,]            FALSE FALSE
## [51,]            FALSE FALSE
## [52,]            FALSE FALSE
## [53,]            FALSE FALSE
## [54,]            FALSE FALSE
## [55,]            FALSE FALSE
library(dplyr)
q1<-df_mahasiswa %>%
count(jenis_kelamin)
q1
## # A tibble: 2 × 2
##   jenis_kelamin     n
##   <chr>         <int>
## 1 L                32
## 2 P                23
library(dplyr)
df_mahasiswa %>%
  group_by(jenis_kelamin) %>%
  summarise(ipk = mean(ipk, na.rm = TRUE)) %>%
  arrange(desc(ipk))
## # A tibble: 2 × 2
##   jenis_kelamin   ipk
##   <chr>         <dbl>
## 1 P              3.18
## 2 L              3.16
library(dplyr)
q2 <- df_mahasiswa %>%
filter(motivasi_belajar == max(motivasi_belajar, na.rm = TRUE))%>%
count(id_mahasiswa)
q2
## # A tibble: 1 × 2
##   id_mahasiswa     n
##   <chr>        <int>
## 1 MHS054           1
library(dplyr)
q3 <- max(df_mahasiswa$frekuensi_login_lms, na.rm = TRUE)


q4 <- df_mahasiswa %>%
  filter(frekuensi_login_lms == q3) %>%
  mutate(ipk_tinggi = ipk > 3.5)
q3
## [1] 7
q4
## # A tibble: 10 × 7
##    id_mahasiswa jenis_kelamin jam_belajar_per_hari frekuensi_login_lms
##    <chr>        <chr>                        <dbl>               <dbl>
##  1 MHS006       L                                3                   7
##  2 MHS007       P                                1                   7
##  3 MHS017       L                                2                   7
##  4 MHS018       L                                5                   7
##  5 MHS022       P                                4                   7
##  6 MHS031       P                                2                   7
##  7 MHS033       P                                1                   7
##  8 MHS041       L                                5                   7
##  9 MHS044       P                                2                   7
## 10 MHS055       P                                2                   7
## # ℹ 3 more variables: motivasi_belajar <dbl>, ipk <dbl>, ipk_tinggi <lgl>
library(dplyr)
q2 <- df_mahasiswa %>%
filter(frekuensi_login_lms == max(frekuensi_login_lms, na.rm = TRUE))%>%
count(id_mahasiswa)
q2
## # A tibble: 10 × 2
##    id_mahasiswa     n
##    <chr>        <int>
##  1 MHS006           1
##  2 MHS007           1
##  3 MHS017           1
##  4 MHS018           1
##  5 MHS022           1
##  6 MHS031           1
##  7 MHS033           1
##  8 MHS041           1
##  9 MHS044           1
## 10 MHS055           1
aggregate(ipk ~ jam_belajar_per_hari >= 4, data = df_mahasiswa, FUN = mean)
##   jam_belajar_per_hari >= 4      ipk
## 1                     FALSE 2.935357
## 2                      TRUE 3.405185
library(dplyr)
q1 <- df_mahasiswa %>%
  filter(ipk == max(ipk, na.rm = TRUE)) %>%
  select(jenis_kelamin, ipk, motivasi_belajar, id_mahasiswa)
q1
## # A tibble: 1 × 4
##   jenis_kelamin   ipk motivasi_belajar id_mahasiswa
##   <chr>         <dbl>            <dbl> <chr>       
## 1 L              3.89               92 MHS018
library(dplyr)
q1 <- df_mahasiswa %>%
  filter(ipk >= 3.5, motivasi_belajar >85) %>%
  count(jenis_kelamin)
q1
## # A tibble: 2 × 2
##   jenis_kelamin     n
##   <chr>         <int>
## 1 L                 4
## 2 P                 1