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.
## # 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.
## # 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.
## # 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)”.
##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)”
## 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)
## [1] "double"
Fungsi Untuk Mengetahui Struktur Dasar Dari Tipe Data
Untuk mengetahui struktur dasar dari tipe dasar data dengan cara coding “claas(nama_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)”
## [1] 299
Fungsi Untuk Mengetahui Banyak Kolom Pada Data
Untuk mengetahui banyak kolom pada data kita dilakukan dengancara coding “ncol(nama_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)”
## [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)”
## [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)”
## [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, ].
## # 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 ].
## # 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 ].
## # 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”
## [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”]]
## [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)”
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))”
## [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))”
## 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))”
## 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)”
## [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)”
## 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)”
## 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)”
## [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”)
Cara Menyimpan dplyr di R studio
## 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 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
## [1] 52.7
## [1] 45
## [1] 50.5
## [1] "numeric"
## 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 berat badan kelas A : 45 65 n/
## standar deviasi dari kelas a 7.056124
## [1] 7.056124
## 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)")