KOMSTAT 1

Cara Menginput Data CSV Kedalam R Studio

Untuk menginput data CSV ke dalam RStudio, pertama pastikan file CSV sudah tersimpan di lokasi yang mudah diakses, lalu atur working directory dengan fungsi setwd() agar R tahu di mana file berada. Setelah itu, Anda bisa membaca file menggunakan read.csv(“nama_file.csv”) untuk fungsi bawaan R atau read_csv(“nama_file.csv”) dari paket readr yang lebih cepat dan rapi. Jika file menggunakan pemisah titik koma ;, tambahkan argumen sep = “;” pada read.csv(). Alternatifnya, Anda juga dapat mengimpor melalui menu Import Dataset di RStudio tanpa menulis kode. Pastikan nama file dan direktori sesuai, serta perhatikan pengaturan encoding jika ada karakter yang tidak terbaca dengan benar.

library(readxl)


data <- read_excel("C:/Users/User/Downloads/Heart Failure Clinical Records.xlsx")
data
## # A tibble: 299 × 13
##      age anaemia creatinine_phosphokinase diabetes ejection_fraction
##    <dbl>   <dbl>                    <dbl>    <dbl>             <dbl>
##  1    75       0                      582        0                20
##  2    55       0                     7861        0                38
##  3    65       0                      146        0                20
##  4    50       1                      111        0                20
##  5    65       1                      160        1                20
##  6    90       1                       47        0                40
##  7    75       1                      246        0                15
##  8    60       1                      315        1                60
##  9    65       0                      157        0                65
## 10    80       1                      123        0                35
## # ℹ 289 more rows
## # ℹ 8 more variables: high_blood_pressure <dbl>, platelets <dbl>,
## #   serum_creatinine <dbl>, serum_sodium <dbl>, sex <chr>, smoking <dbl>,
## #   time <dbl>, DEATH_EVENT <dbl>

Eksplorasi Data Awal

Eksplorasi struktur data adalah proses memahami bentuk, dimensi, tipe, dan isi data di R untuk memastikan kesesuaiannya dengan analisis yang akan dilakukan.

Fungsi Untuk Melihat Data Awal

Untuk melakukan data awal pada data dengan cara “head(data)”, maka akan keluar enam data awal.

head(data)
## # A tibble: 6 × 13
##     age anaemia creatinine_phosphokinase diabetes ejection_fraction
##   <dbl>   <dbl>                    <dbl>    <dbl>             <dbl>
## 1    75       0                      582        0                20
## 2    55       0                     7861        0                38
## 3    65       0                      146        0                20
## 4    50       1                      111        0                20
## 5    65       1                      160        1                20
## 6    90       1                       47        0                40
## # ℹ 8 more variables: high_blood_pressure <dbl>, platelets <dbl>,
## #   serum_creatinine <dbl>, serum_sodium <dbl>, sex <chr>, smoking <dbl>,
## #   time <dbl>, DEATH_EVENT <dbl>

Fungsi Untuk Melihat Data Terakhir

Untuk melakukan data akhir pada data dengan cara “tail(data)”, maka akan keluar enam data terakhir.

tail(data)
## # A tibble: 6 × 13
##     age anaemia creatinine_phosphokinase diabetes ejection_fraction
##   <dbl>   <dbl>                    <dbl>    <dbl>             <dbl>
## 1    63       1                      103        1                35
## 2    62       0                       61        1                38
## 3    55       0                     1820        0                38
## 4    45       0                     2060        1                60
## 5    45       0                     2413        0                38
## 6    50       0                      196        0                45
## # ℹ 8 more variables: high_blood_pressure <dbl>, platelets <dbl>,
## #   serum_creatinine <dbl>, serum_sodium <dbl>, sex <chr>, smoking <dbl>,
## #   time <dbl>, DEATH_EVENT <dbl>

Fungsi Untuk Melihat Data Sesuai Baris Yang Diinginkan

Untuk mencari data yang kita inginkan dilihat pada data dengan cara “tail(data,5)”, maka akan keluar 5 data terakhir. “head(data,5)” maka keluar data kelima pada awal data.

tail(data,5)
## # A tibble: 5 × 13
##     age anaemia creatinine_phosphokinase diabetes ejection_fraction
##   <dbl>   <dbl>                    <dbl>    <dbl>             <dbl>
## 1    62       0                       61        1                38
## 2    55       0                     1820        0                38
## 3    45       0                     2060        1                60
## 4    45       0                     2413        0                38
## 5    50       0                      196        0                45
## # ℹ 8 more variables: high_blood_pressure <dbl>, platelets <dbl>,
## #   serum_creatinine <dbl>, serum_sodium <dbl>, sex <chr>, smoking <dbl>,
## #   time <dbl>, DEATH_EVENT <dbl>

Cara Melihat Data Pada Tab Baru

Untuk melihat data pada tab baru dengan cara “view(data)”.

View(data)

##Struktur Dan Tipe Data

Tipe data di R menentukan jenis nilai yang disimpan, sedangkan struktur data menentukan cara nilai-nilai tersebut diorganisasikan keduanya saling berkaitan karena setiap struktur data terdiri dari elemen-elemen dengan tipe data tertentu.

Fungsi Untuk Mengetahui Tipe Data

Untuk mengetahui tipe data maka dilakukan dengan coding “str(nama_data)”

str(data)
## tibble [299 × 13] (S3: tbl_df/tbl/data.frame)
##  $ age                     : num [1:299] 75 55 65 50 65 90 75 60 65 80 ...
##  $ anaemia                 : num [1:299] 0 0 0 1 1 1 1 1 0 1 ...
##  $ creatinine_phosphokinase: num [1:299] 582 7861 146 111 160 ...
##  $ diabetes                : num [1:299] 0 0 0 0 1 0 0 1 0 0 ...
##  $ ejection_fraction       : num [1:299] 20 38 20 20 20 40 15 60 65 35 ...
##  $ high_blood_pressure     : num [1:299] 1 0 0 0 0 1 0 0 0 1 ...
##  $ platelets               : num [1:299] 265000 263358 162000 210000 327000 ...
##  $ serum_creatinine        : num [1:299] 1.9 1.1 1.3 1.9 2.7 2.1 1.2 1.1 1.5 9.4 ...
##  $ serum_sodium            : num [1:299] 130 136 129 137 116 132 137 131 138 133 ...
##  $ sex                     : chr [1:299] "M" "M" "M" "M" ...
##  $ smoking                 : num [1:299] 0 0 1 0 0 1 0 1 0 1 ...
##  $ time                    : num [1:299] 4 6 7 7 8 8 10 10 10 10 ...
##  $ DEATH_EVENT             : num [1:299] 1 1 1 1 1 1 1 1 1 1 ...

Fungsi Untuk Mengetahui Tipe Data Yang Diiinginkan

Untuk mengetahui tipe data yang kita ingginkan pada data tersebut dengan cara “typeof(nama_data$data_diinginkan)

typeof(data$anaemia)
## [1] "double"

Fungsi Untuk Mengetahui Struktur Dasar Dari Tipe Data

Untuk mengetahui struktur dasar dari tipe dasar data dengan cara coding “claas(nama_data)”

class(data)
## [1] "tbl_df"     "tbl"        "data.frame"

Ukuran dan Nama Dari Data

Ukuran data di R menunjukkan jumlah elemen atau dimensi dari data, sedangkan nama data adalah label atau identitas yang digunakan untuk memanggil data tersebut.

Fungsi Untuk Mengetahui Jumlah Baris Pada Data

Untuk mengetahui berapa banyak baris yang ada pada data kita dengan coding “nrow(nama_nama data)”

nrow(data)
## [1] 299

Fungsi Untuk Mengetahui Banyak Kolom Pada Data

Untuk mengetahui banyak kolom pada data kita dilakukan dengancara coding “ncol(nama_data)”

ncol(data)
## [1] 13

Fungsi Untuk Mengetahui Dimensi atau Ukuran Tabel Pada Data

Untuk mengetahui banyak Dimensi atau Ukuran Tabel pada data kita dilakukan dengancara coding “dim(nama_data)”

dim(data)
## [1] 299  13

Fungsi Untuk Mengetahui Nama - Nama Kolom Pada Data

Untuk mengetahui Nama - Nama Kolom pada data kita dilakukan dengancara coding “colnames(nama_data)”

colnames(data)
##  [1] "age"                      "anaemia"                 
##  [3] "creatinine_phosphokinase" "diabetes"                
##  [5] "ejection_fraction"        "high_blood_pressure"     
##  [7] "platelets"                "serum_creatinine"        
##  [9] "serum_sodium"             "sex"                     
## [11] "smoking"                  "time"                    
## [13] "DEATH_EVENT"

Fungsi Untuk Mengetahui Urutan baris pada Pada Data

Untuk mengetahui Urutan baris pada data kita dilakukan dengancara coding “colnames(nama_data)”

rownames(data)
##   [1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"   "9"   "10"  "11"  "12" 
##  [13] "13"  "14"  "15"  "16"  "17"  "18"  "19"  "20"  "21"  "22"  "23"  "24" 
##  [25] "25"  "26"  "27"  "28"  "29"  "30"  "31"  "32"  "33"  "34"  "35"  "36" 
##  [37] "37"  "38"  "39"  "40"  "41"  "42"  "43"  "44"  "45"  "46"  "47"  "48" 
##  [49] "49"  "50"  "51"  "52"  "53"  "54"  "55"  "56"  "57"  "58"  "59"  "60" 
##  [61] "61"  "62"  "63"  "64"  "65"  "66"  "67"  "68"  "69"  "70"  "71"  "72" 
##  [73] "73"  "74"  "75"  "76"  "77"  "78"  "79"  "80"  "81"  "82"  "83"  "84" 
##  [85] "85"  "86"  "87"  "88"  "89"  "90"  "91"  "92"  "93"  "94"  "95"  "96" 
##  [97] "97"  "98"  "99"  "100" "101" "102" "103" "104" "105" "106" "107" "108"
## [109] "109" "110" "111" "112" "113" "114" "115" "116" "117" "118" "119" "120"
## [121] "121" "122" "123" "124" "125" "126" "127" "128" "129" "130" "131" "132"
## [133] "133" "134" "135" "136" "137" "138" "139" "140" "141" "142" "143" "144"
## [145] "145" "146" "147" "148" "149" "150" "151" "152" "153" "154" "155" "156"
## [157] "157" "158" "159" "160" "161" "162" "163" "164" "165" "166" "167" "168"
## [169] "169" "170" "171" "172" "173" "174" "175" "176" "177" "178" "179" "180"
## [181] "181" "182" "183" "184" "185" "186" "187" "188" "189" "190" "191" "192"
## [193] "193" "194" "195" "196" "197" "198" "199" "200" "201" "202" "203" "204"
## [205] "205" "206" "207" "208" "209" "210" "211" "212" "213" "214" "215" "216"
## [217] "217" "218" "219" "220" "221" "222" "223" "224" "225" "226" "227" "228"
## [229] "229" "230" "231" "232" "233" "234" "235" "236" "237" "238" "239" "240"
## [241] "241" "242" "243" "244" "245" "246" "247" "248" "249" "250" "251" "252"
## [253] "253" "254" "255" "256" "257" "258" "259" "260" "261" "262" "263" "264"
## [265] "265" "266" "267" "268" "269" "270" "271" "272" "273" "274" "275" "276"
## [277] "277" "278" "279" "280" "281" "282" "283" "284" "285" "286" "287" "288"
## [289] "289" "290" "291" "292" "293" "294" "295" "296" "297" "298" "299"

Index Dan Subsetting

Indexing dan subsetting di R adalah cara untuk mengambil atau memilih bagian tertentu dari data, di mana indexing mengacu pada pemanggilan elemen berdasarkan posisi atau nama, sedangkan subsetting mencakup berbagai metode untuk memfilter atau memilih elemen sesuai kriteria tertentu.

Fungsi Untuk Memperlihatkan Data yang Kita Inginkan Pada Baris Tertentu

Untuk memperlihatkan data yang kita inginkan pada baris tertentu dengan coding “nama_dat[(baris-diinginkan, ].

data[1, ]
## # A tibble: 1 × 13
##     age anaemia creatinine_phosphokinase diabetes ejection_fraction
##   <dbl>   <dbl>                    <dbl>    <dbl>             <dbl>
## 1    75       0                      582        0                20
## # ℹ 8 more variables: high_blood_pressure <dbl>, platelets <dbl>,
## #   serum_creatinine <dbl>, serum_sodium <dbl>, sex <chr>, smoking <dbl>,
## #   time <dbl>, DEATH_EVENT <dbl>

Fungsi Untuk Memperlihatkan Data yang Kita Inginkan Pada Kolom Tertentu

Untuk memperlihatkan data yang kita inginkan pada kolom tertentu dengan coding “nama_data[ ,kolom-diinginkan ].

data[ ,2]
## # A tibble: 299 × 1
##    anaemia
##      <dbl>
##  1       0
##  2       0
##  3       0
##  4       1
##  5       1
##  6       1
##  7       1
##  8       1
##  9       0
## 10       1
## # ℹ 289 more rows

Fungsi Untuk Memperlihatkan Data yang Kita Inginkan Pada Kolom Tertentu dan Baris Tertentu Dengan Batas Batas tERTENTU

Untuk memperlihatkan data yang kita inginkan pada kolom tertentu dan baris tertentu denga batas batas yang kita ingghinkan dengan coding “nama_data[baris yang diingikan ,kolom-diinginkan ].

data[3:10,2:10]
## # A tibble: 8 × 9
##   anaemia creatinine_phosphokin…¹ diabetes ejection_fraction high_blood_pressure
##     <dbl>                   <dbl>    <dbl>             <dbl>               <dbl>
## 1       0                     146        0                20                   0
## 2       1                     111        0                20                   0
## 3       1                     160        1                20                   0
## 4       1                      47        0                40                   1
## 5       1                     246        0                15                   0
## 6       1                     315        1                60                   0
## 7       0                     157        0                65                   0
## 8       1                     123        0                35                   1
## # ℹ abbreviated name: ¹​creatinine_phosphokinase
## # ℹ 4 more variables: platelets <dbl>, serum_creatinine <dbl>,
## #   serum_sodium <dbl>, sex <chr>

Fungsi Untuk Menampilkan Kolom Yang Diinginkan

Untuk menampilkan kolom yang kita ingginkan dengan cara coding “data$anemia”

data$sex
##   [1] "M" "M" "M" "M" "F" "M" "M" "M" "F" "M" "M" "M" "M" "M" "F" "M" "M" "M"
##  [19] "F" "F" "F" "F" "M" "M" "F" "M" "F" "M" "M" "M" "M" "M" "F" "F" "M" "M"
##  [37] "M" "F" "M" "F" "M" "F" "M" "M" "F" "M" "M" "M" "M" "F" "M" "F" "F" "F"
##  [55] "F" "M" "M" "M" "M" "M" "M" "F" "M" "M" "F" "M" "F" "M" "F" "M" "M" "M"
##  [73] "M" "M" "M" "M" "F" "M" "M" "F" "F" "M" "F" "M" "F" "M" "M" "M" "M" "M"
##  [91] "M" "M" "F" "M" "F" "M" "M" "F" "F" "F" "M" "M" "M" "M" "F" "F" "M" "M"
## [109] "M" "M" "M" "M" "M" "F" "M" "F" "F" "F" "F" "F" "M" "F" "F" "F" "M" "F"
## [127] "F" "F" "M" "M" "M" "M" "F" "M" "M" "M" "F" "M" "F" "M" "M" "F" "F" "F"
## [145] "M" "M" "M" "M" "M" "M" "F" "M" "M" "M" "F" "M" "F" "M" "M" "M" "M" "M"
## [163] "M" "F" "M" "F" "M" "M" "F" "F" "M" "M" "M" "M" "M" "M" "M" "F" "M" "M"
## [181] "M" "M" "M" "M" "M" "M" "F" "F" "F" "F" "M" "F" "M" "M" "M" "M" "F" "F"
## [199] "F" "M" "M" "M" "M" "M" "M" "F" "F" "M" "F" "F" "M" "M" "M" "F" "M" "M"
## [217] "F" "F" "M" "F" "M" "M" "M" "M" "M" "F" "M" "M" "F" "F" "F" "M" "M" "M"
## [235] "M" "M" "M" "M" "F" "M" "F" "M" "M" "F" "M" "M" "M" "M" "M" "F" "F" "F"
## [253] "M" "F" "M" "M" "F" "M" "M" "M" "M" "F" "M" "F" "M" "M" "M" "M" "F" "M"
## [271] "M" "F" "F" "M" "M" "F" "F" "M" "F" "F" "M" "M" "M" "M" "M" "M" "M" "F"
## [289] "F" "F" "F" "M" "M" "M" "M" "F" "F" "M" "M"

Fungsi Untuk Menampilkan Kolom Yang Diinginkan Deangan Cara Berbeda

Untuk menampilkan kolom yang kita ingginkan dengan cara coding “nama_data[“kolom_diinginkan”]]

head(data$sex)
## [1] "M" "M" "M" "M" "F" "M"

Pemeriksaan Data

Pemeriksaan data di R dilakukan untuk memastikan kualitas dan konsistensi data

Missing Value

Mssing value bertujuan mengidentifikasi dan mengatasi nilai yang hilang agar analisis tetap valid dan akurat

Fungsi Untuk Mengetahui Elemen yang Kosong Pada data

Untuuk mengetahui elem yang bernilai kosong dalam data dengan cara coding “is.na(nama_data)”

#is.na(data)

Fungsi Untuk Mengetahui Banyak Elemen yang Kosong Pada data

Untuuk mengetahui elemen yang bernilai kosong dalam data dengan cara coding “sum(is.na(nama_data))”

sum(is.na(data))
## [1] 0

Fungsi Untuk Mengetahui Letak Banyak Elemen yang Kosong Pada data Melelui Baris dan Kolom

Untuk mengetahui elemen yang bernilai kosong dan letak baris serta kolom dalam data dengan cara coding “colSum(is.na(nama_data))”

colSums(is.na(data))
##                      age                  anaemia creatinine_phosphokinase 
##                        0                        0                        0 
##                 diabetes        ejection_fraction      high_blood_pressure 
##                        0                        0                        0 
##                platelets         serum_creatinine             serum_sodium 
##                        0                        0                        0 
##                      sex                  smoking                     time 
##                        0                        0                        0 
##              DEATH_EVENT 
##                        0

Fungsi Untuk Menampilkan Elemen yang Kosong Pada Indeks Baris dan Kolom Yang kita Inginkan Dalam Data

Untuk menampilkan elemen yang ksosng pada indeks baris dan kolom yang kita inginkan dalam data dengan cara coding “which(is.na(nama_data$kolom-diinginkan))”

which(is.na(data$anaemia))
## integer(0)

Fungsi Untuk Mengahpus Elemen yang Kosong

Untuk menghapus elem yang ksosong pada pada dengan cara “nama_data_baru<- na.omit (nama_data_lama)”

data3<-na.omit(data)
sum(is.na(data3))
## [1] 0

Statistika Deskriptif Awal

Statistik deskriptif awal digunakan untuk memberikan gambaran umum tentang data melalui ukuran seperti rata-rata, median, standar deviasi, dan distribusi, sehingga membantu memahami karakteristik dasar data sebelum analisis lebih lanjut

Fungsi Untuk Mengetahui Statistik Deskriptif Pada Data

Untuk mengetahui statistik deskriptif pada data dengan cara coding “summary(nama_data)”

summary(data)
##       age           anaemia       creatinine_phosphokinase    diabetes     
##  Min.   :40.00   Min.   :0.0000   Min.   :  23.0           Min.   :0.0000  
##  1st Qu.:51.00   1st Qu.:0.0000   1st Qu.: 116.5           1st Qu.:0.0000  
##  Median :60.00   Median :0.0000   Median : 250.0           Median :0.0000  
##  Mean   :60.83   Mean   :0.4314   Mean   : 581.8           Mean   :0.4181  
##  3rd Qu.:70.00   3rd Qu.:1.0000   3rd Qu.: 582.0           3rd Qu.:1.0000  
##  Max.   :95.00   Max.   :1.0000   Max.   :7861.0           Max.   :1.0000  
##  ejection_fraction high_blood_pressure   platelets      serum_creatinine
##  Min.   :14.00     Min.   :0.0000      Min.   : 25100   Min.   :0.500   
##  1st Qu.:30.00     1st Qu.:0.0000      1st Qu.:212500   1st Qu.:0.900   
##  Median :38.00     Median :0.0000      Median :262000   Median :1.100   
##  Mean   :38.08     Mean   :0.3512      Mean   :263358   Mean   :1.394   
##  3rd Qu.:45.00     3rd Qu.:1.0000      3rd Qu.:303500   3rd Qu.:1.400   
##  Max.   :80.00     Max.   :1.0000      Max.   :850000   Max.   :9.400   
##   serum_sodium       sex               smoking            time      
##  Min.   :113.0   Length:299         Min.   :0.0000   Min.   :  4.0  
##  1st Qu.:134.0   Class :character   1st Qu.:0.0000   1st Qu.: 73.0  
##  Median :137.0   Mode  :character   Median :0.0000   Median :115.0  
##  Mean   :136.6                      Mean   :0.3211   Mean   :130.3  
##  3rd Qu.:140.0                      3rd Qu.:1.0000   3rd Qu.:203.0  
##  Max.   :148.0                      Max.   :1.0000   Max.   :285.0  
##   DEATH_EVENT    
##  Min.   :0.0000  
##  1st Qu.:0.0000  
##  Median :0.0000  
##  Mean   :0.3211  
##  3rd Qu.:1.0000  
##  Max.   :1.0000

Fungsi Untuk Mengetahui Statistik Deskriptif Pada Kolom Yng Diinginkan Dalam Data

Untuk mengetahui statistik deskriptif pada kolom tertentu data dengan cara coding “summary(nama_data$data_diinginkan)”

summary(data$anaemia)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.4314  1.0000  1.0000

Fungsi Untuk Mengetahui Nilai Min Pada Kolom Yng Diinginkan Dalam Data

Untuk mengetahui statistik deskriptif pada kolom tertentu data dengan cara coding “mean(nama_data$data_diinginka, na.rm = TRUE)”

mean(data$age, na.rm = TRUE)
## [1] 60.83389

Outlier Sederhana (Boxplot)

Outlier sederhana yang ditampilkan melalui boxplot adalah nilai data yang menyimpang jauh dari mayoritas nilai lainnya, sehingga boxplot membantu mendeteksi titik-titik ekstrem tersebut secara visual.

Fungsi Untuk Menampilkan Boxplot Pada Kolom yang Tertentu

Untuk menampilkan boxplot pada kolom tertentu dengan cara “boxplot(nama_data$data_diinginkan, main =”Judl”)

boxplot(data$ejection_fraction, main = "Boxplot Ejection Fraction" , col = "Blue")

Cara Menyimpan dplyr di R studio

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.1
## 
## 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
nama_a <-c("Ahmad", "Aisyah", "Amanda", "Ananda", "Afifah", "Azis", "Adit", "Apis", "Aqil", "Alim")
bb_a <-c(54,46,65,45,47,48,52,49,60,61)
tb_a <-c(165,157,159,160,162,163,164,162,161,164)
Kelas_A <-data.frame(nama_a, bb_a, tb_a)
Kelas_A
##    nama_a bb_a tb_a
## 1   Ahmad   54  165
## 2  Aisyah   46  157
## 3  Amanda   65  159
## 4  Ananda   45  160
## 5  Afifah   47  162
## 6    Azis   48  163
## 7    Adit   52  164
## 8    Apis   49  162
## 9    Aqil   60  161
## 10   Alim   61  164
mean(Kelas_A$bb_a)
## [1] 52.7
min(Kelas_A$bb_a)
## [1] 45
median(Kelas_A$bb_a)
## [1] 50.5
mode(Kelas_A$bb_a)
## [1] "numeric"
mean_bba<-mean(Kelas_A$bb_a)
cat("rata rata berat badan kelas A", mean_bba, "kg")
## rata rata berat badan kelas A 52.7 kg
plotA <-plot(Kelas_A$tb_a, Kelas_A$bb_a, type = "o", col = " blue", main = "Grafik Sederhana", xlab = "X", ylab = "y")

range_bba <- range(Kelas_A$bb_a)
cat("range berat badan kelas A :", range_bba, "n/")
## range berat badan kelas A : 45 65 n/
std_dev <- sd(Kelas_A$bb_a)
cat("standar deviasi dari kelas a", std_dev)
## standar deviasi dari kelas a 7.056124
std_dev
## [1] 7.056124
library(dplyr)
var_bbA <- var(Kelas_A$bb_a)
cat("variansi dari berat badan kelas A :", var_bbA)
## variansi dari berat badan kelas A : 49.78889
hist(Kelas_A$bb_a, col = "blue", main = "Histogram berat badan mahasiswa", xlab = "berat badan (kg)")

boxplot(Kelas_A$bb_a, col = "orange", main= "boxplot berat badan mahasiswa kelas A", ylab = "berat badan(kg)")

##install.packages("rmdformats")