Penggunaan bahasa R menjadi penting di era data saat ini karena R adalah bahasa pemrograman yang dirancang khusus untuk analisis data dan statistik. Dengan kemampuan yang kuat dalam mengolah, menganalisis, dan memvisualisasikan data, R telah menjadi salah satu alat utama bagi para data scientist, peneliti, dan analis di berbagai bidang.

  1. Open-source dan gratis: Bisa menggunakan R tanpa perlu mengeluarkan biaya lisensi.

  2. Komunitas yang besar: Ada banyak pengguna R di seluruh dunia sehingga mudah menemukan bantuan dan sumber daya.

  3. Paket yang lengkap: R memiliki banyak paket khusus untuk analisis data, seperti raster, rgdal, dan meteoR.

  4. Fleksibilitas: R sangat fleksibel yang memungkinkan melakukan berbagai jenis analisis, dari yang sederhana hingga yang kompleks.

Hal yang paling sederhana yang dapat dilakukan R adalah sebagai kalkulator atau menggunakannya sebagai kalkulator sederhana.

1 + 10
## [1] 11

R adalah bahasa pemrograman yang case-sensitive. Artinya perbedaan huruf kapital dan huruf kecil sangat berpengaruh.

a <- 3
a
## [1] 3

1 Assignment

Bahasa pemrograman R mempunyai sedikit perbedaan dengan bahasa pemrograman pada umumnya. Salah satunya adalah pada operator assignment. Hampir semua bahasa pemrograman lain menggunakan tanda = sebagai operator assignment. Di R, yang utama dan paling banyak digunakan oleh pengguna R adalah operator panah kiri (<-).

x <- 5
x
## [1] 5

Sebenarnya menggunakan operator = juga bisa.

x = 5

Jika ingin mengetahui nilai suatu objek cukup panggil objek tersebut atau gunakan fungsi print()

print(x)
## [1] 5

Operator Assignment Lainnya

Ada beberapa operator assignment lainnya yang dapat digunakan pada R.

Operator Penjelasan
<- nilai dari sebelah kanan dimasukkan ke dalam objek di sebelah kiri.
-> nilai dari sebelah kiri dimasukkan ke dalam objek di sebelah kanan.
<<- nilai dari sebelah kanan dimasukkan ke dalam objek global di sebelah kiri
->> nilai dari sebelah kiri dimasukkan ke dalam objek global di sebelah kanan
# Nilai x sebelumnya
x
## [1] 5
# Nilai x yang baru
x <- 8 + 2
x
## [1] 10
# Nilai x yang baru
x <- x + 5
x
## [1] 15
52 -> x
x
## [1] 52
y <- 2 + 4
2 + 4 -> y
y
## [1] 6

2 Penamaan Objek

Aturan penamaan objek di R hampir sama dengan aturan penamaan pada bahasa pemrograman lain. Namun ada beberapa aturan khusus yang terdapat di R. Berikut aturan penamaan objek di R:

  • Nama variabel harus dimulai dengan sebuah huruf dan dapat berupa kombinasi huruf, angka, titik(.) dan garis bawah (_). Jika diawali dengan titik(.), maka tidak boleh diikuti dengan angka.

  • Nama variabel tidak boleh dimulai dengan angka atau garis bawah (__).

  • Tidak mengandung spasi, tab atau karakter khusus seperti !, @, # dan lainnya.

  • Sebaiknya tidak menggunakan beberapa penamaan atau nilai yang sudah digunakan oleh R (function dan keyword lainnya). Misalnya c, q, TRUE, FALSE, df, dt, rnorm, runif, rf, exp, dan lain-lain. Untuk mengetahui nama-nama yang sudah digunakan oleh R dapat mengetikkan perintah ?reserved di console RStudio.

# Contoh nama variable yang diperbolehkan
myvar <- "Universitas Indonesia" 
my_var <- "Universitas Indonesia"
myVar <- "Universitas Indonesia"
MYVAR <- "Universitas Indonesia"
myvar2 <- "Universitas Indonesia"
.myvar <- "Universitas Indonesia"

R Comment

Komentar di R memiliki fungsi untuk membedakan antara R syntax dengan tulisan biasa/bukan kode. Ketika melakukan print output, maka R akan mengabaikan code yang terdapat symbol # (R comment).

Jika ingin membuat komentar multiline dapat menyisipkan simbol # tersebut pada setiap barisnya. Untuk mempermudah membuat komentar di R, bisa dengan shortcut keyboard CTRL+SHIFT+C.

Contoh komentar satu baris sebelum baris kode.

# Komentar satu baris sebelum baris kode
"Hello world" 
## [1] "Hello world"

Contoh komentar satu baris di akhir baris kode.

"Hello world" #Komentar satu baris di akhir kode
## [1] "Hello world"
## [1] "Hello world"

Contoh komentar multiline.

# Ini adalah komentar multiline
# Cukup dengan menuliskan simbol # di setiap line code
"Hello world"
## [1] "Hello world"

Tipe Variabel

Tipe data dalam R meliputi numeric, complex, character, dan logical.

  • Numeric : 8, 9.8, 2.4e-2
  • Complex: 3.5 + 2i
  • Character: “Metode Kuantitatif”
  • Logical : T, F, TRUE, FALSE

Mengecek tipe data suatu objek menggunakan class()

# numeric
x1 <- 78.5
class(x1)
## [1] "numeric"
# complex
x2 <- 9i + 13
class(x2)
## [1] "complex"
# character/string
x3 <- "Kalisari"
class(x3)
## [1] "character"
# logical/boolean
x4 <- TRUE
class(x4)
## [1] "logical"

Working Directory

Untuk mengetahui di folder kerja saat ini, gunakan perintah getwd()

Set working direktori pada komputer: setwd()

3 Jenis Objek dalam R

Objek dalam R terdiri atas Vector, Factor, Matrix, Array, Dataframe, List. Untuk melakukan pemeriksaan tipe variabel, gunakan perintah str()

3.1 Vector

Vector adalah objek data paling sederhana dalam R. Vector merupakan data array yang dapat menyimpan banyak data dalam 1 variabel saja dan diakses menggunakan indeks. Fungsi yang paling sering digunakan untuk membuat sebuah vector adalah dengan menuliskan c()

Secara umum jenis vector terbagi 2, yaitu numeric dan character.

x <- c(2, 1, 5, 3, 1)
x
## [1] 2 1 5 3 1
x[2]
## [1] 1

Untuk membuat sebuah vector numeric berurutan secara meningkat atau menurun.

x <- 1:10 # 1 sampai 10
x
##  [1]  1  2  3  4  5  6  7  8  9 10

Fungsi ini dapat digunakan untuk membuat vector berurutan dan dengan increment tertentu.

x <- seq(from = 1, to = 10, by = 2) 
x
## [1] 1 3 5 7 9
x <- seq(from = 1, to = 10, length.out = 7) 
x
## [1]  1.0  2.5  4.0  5.5  7.0  8.5 10.0

Dengan perintah rep() dapat dibuat sebuah vector dengan mengulang-ulang nilai.

x <- rep(3, 10)
x
##  [1] 3 3 3 3 3 3 3 3 3 3

Vector character adalah vector yang semua elemennya bertipe character.

y <- c("a", "A", "d", "c")
y
## [1] "a" "A" "d" "c"

Memeriksa jenis objek:

str(y)
##  chr [1:4] "a" "A" "d" "c"

3.2 Factor

Factor merupakan bentuk lebih luas dari vector. Biasanya factor lebih sering digunakan untuk menyimpan data nominal atau ordinal. Misalnya tampilan dari isi datanya mungkin "male" dan "female" tetapi isi dari factor adalah pengkodean numerik. Misal untuk "female" nilai sebenarnya adalah 1, sedangkan "male" berniali 2.

fc <- factor(c("SD", "SMA", "SMP", "SMP", "SD", "SMA", "SD", "SMP", "Kuliah"))
fc
## [1] SD     SMA    SMP    SMP    SD     SMA    SD     SMP    Kuliah
## Levels: Kuliah SD SMA SMP

3.3 Matriks

Matriks adalah objek di R yang memiliki 2 dimensi, baris (row/m) dan kolom (column/n), dan tipe nilainya sama. Jadi, jika Vector menyimpan nilai 1 dimensi, maka Matrix dapat menyimpan nilai 2 dimensi.

x <- c(1, 2, 5, 14, 12, 12, 23, 33, 5, 43, 11, 0, 4, 3, 0, 6)
x
##  [1]  1  2  5 14 12 12 23 33  5 43 11  0  4  3  0  6
m <- matrix(data = x, nrow = 4)
m
##      [,1] [,2] [,3] [,4]
## [1,]    1   12    5    4
## [2,]    2   12   43    3
## [3,]    5   23   11    0
## [4,]   14   33    0    6
m <- matrix(data = x, nrow = 8)
m
##      [,1] [,2]
## [1,]    1    5
## [2,]    2   43
## [3,]    5   11
## [4,]   14    0
## [5,]   12    4
## [6,]   12    3
## [7,]   23    0
## [8,]   33    6
m <- matrix(data = x, nrow = 7, ncol = 3)
## Warning in matrix(data = x, nrow = 7, ncol = 3): data length [16] is not a
## sub-multiple or multiple of the number of rows [7]
m
##      [,1] [,2] [,3]
## [1,]    1   33    0
## [2,]    2    5    6
## [3,]    5   43    1
## [4,]   14   11    2
## [5,]   12    0    5
## [6,]   12    4   14
## [7,]   23    3   12
x=c(2,4)
y=c(6,8)
m1=cbind(x,y)
m1
##      x y
## [1,] 2 6
## [2,] 4 8
m2=matrix(c(10,20,30,40),ncol=2)
m2
##      [,1] [,2]
## [1,]   10   30
## [2,]   20   40
m3=matrix(c(1,3,2,5,-1,2,2,3,9),ncol=3,byrow=T) 
m3
##      [,1] [,2] [,3]
## [1,]    1    3    2
## [2,]    5   -1    2
## [3,]    2    3    9
t(m3)     # transpose dari m3 
##      [,1] [,2] [,3]
## [1,]    1    5    2
## [2,]    3   -1    3
## [3,]    2    2    9
m3[2,3]   #element dari m3 pada baris 2, kolom 3 
## [1] 2
m3[2,]    #baris 2 
## [1]  5 -1  2
m3[,3]    #kolom 3 
## [1] 2 2 9
m3[-1,]   #submatrix dari m3 tanpa baris pertama 
##      [,1] [,2] [,3]
## [1,]    5   -1    2
## [2,]    2    3    9
m3[,-1]   #submatrix dari m3 tanpa kolom pertama
##      [,1] [,2]
## [1,]    3    2
## [2,]   -1    2
## [3,]    3    9
m3[-1,-1] #submatrix dari m3 tanpa kolom pertama dan baris pertama
##      [,1] [,2]
## [1,]   -1    2
## [2,]    3    9
2*m1      #perkalian scalar
##      x  y
## [1,] 4 12
## [2,] 8 16
m1+m2     #penambahan matrix addition
##       x  y
## [1,] 12 36
## [2,] 24 48
m1 %*% m2   #perkalian component matrix 
##      [,1] [,2]
## [1,]  140  300
## [2,]  200  440
solve(m1)   #inverse matrix
##   [,1]  [,2]
## x -1.0  0.75
## y  0.5 -0.25
diag(3)     #membangun k by k identity matrix
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1
diag(c(2,3,3)) #diagonal matrices 
##      [,1] [,2] [,3]
## [1,]    2    0    0
## [2,]    0    3    0
## [3,]    0    0    3
eigen(m2) #mencari eigen
## eigen() decomposition
## $values
## [1] 53.722813 -3.722813
## 
## $vectors
##            [,1]       [,2]
## [1,] -0.5657675 -0.9093767
## [2,] -0.8245648  0.4159736

3.4 Array

Untuk Array 3 dimensi dapat dibayangkan sebagai lapisan beberapa lembar kertas seperti pada gambar di atas. Berikut ini merupakan contoh array berdimensi 3 berisi 2 lapis matriks masing-masing berukuran 4 baris dan 4 kolom.

array(mtcars$mpg, dim = c(4, 4, 2))
## , , 1
## 
##      [,1] [,2] [,3] [,4]
## [1,] 21.0 18.7 22.8 17.3
## [2,] 21.0 18.1 19.2 15.2
## [3,] 22.8 14.3 17.8 10.4
## [4,] 21.4 24.4 16.4 10.4
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4]
## [1,] 14.7 21.5 19.2 15.8
## [2,] 32.4 15.5 27.3 19.7
## [3,] 30.4 15.2 26.0 15.0
## [4,] 33.9 13.3 30.4 21.4

3.5 Dataframe

Dataframe layaknya sebuah tabel di Ms Excel, terdiri dari baris dan kolom dengan nama masing-masing kolom berbeda.

x1 <- c(1, 3, 2, 6, 4, 7)
v1 <- c("a", "A", "c", "d", "e", "F")
data1 <- data.frame(x1 = x1, v1 = v1)
data1
##   x1 v1
## 1  1  a
## 2  3  A
## 3  2  c
## 4  6  d
## 5  4  e
## 6  7  F
str(data1)
## 'data.frame':    6 obs. of  2 variables:
##  $ x1: num  1 3 2 6 4 7
##  $ v1: chr  "a" "A" "c" "d" ...
# Menggunakan tanda dollar
data1$x1
## [1] 1 3 2 6 4 7
# Menggunakan indeks urutan posisi variable
data1[, 1]
## [1] 1 3 2 6 4 7
# Menggunakan double-bracket posisi variable 
data1[[1]]
## [1] 1 3 2 6 4 7
# Menggunakan nama variable pada indeks
data1[, "x1"]
## [1] 1 3 2 6 4 7

Untuk membuat kolom baru dapat digunakan cara yang hampir sama dan menggunakan assignment. Berikut ini akan dibuat kolom baru bernama x2 berupa variable numeric.

data1$x2 <- 11
data1
##   x1 v1 x2
## 1  1  a 11
## 2  3  A 11
## 3  2  c 11
## 4  6  d 11
## 5  4  e 11
## 6  7  F 11
data1$x3 <- data1$x1 + data1$x2
str(data1)
## 'data.frame':    6 obs. of  4 variables:
##  $ x1: num  1 3 2 6 4 7
##  $ v1: chr  "a" "A" "c" "d" ...
##  $ x2: num  11 11 11 11 11 11
##  $ x3: num  12 14 13 17 15 18

3.6 List

Objek list pada dasarnya mirip seperti vector, hanya saja tipe elemennya bisa berbeda. Jika pada vector numeric semua elemennya harus berupa numerik. Pada vector character semuanya harus karakter. Pada objek list elemennya dapat berupa vector, factor, matriks, array, dataframe, bahkan list di dalam list atau objek lain seperti model prediktif yang dibuat di R

list(2, "A", c(4, 5, 2), iris[1:5,])
## [[1]]
## [1] 2
## 
## [[2]]
## [1] "A"
## 
## [[3]]
## [1] 4 5 2
## 
## [[4]]
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa

4 Function dan Package

Pada dasarnya R adalah bahasa pemrograman functional atau Functional Programming (FP). Karena dibuat untuk memudahkan analisis data, R mempunyai banyak fungsi yang tersedia untuk melakukan analisis statistik.

x <- seq(1, 100, by = 4)

# Rata-rata vector x
mean(x)
## [1] 49
min(x)
## [1] 1
max(x)
## [1] 97
range(x)
## [1]  1 97
summary(x)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       1      25      49      49      73      97

4.1 User-Defined Function

Ketika membuat sebuah script yang akan digunakan berkali-kali namun dengan nilai input yang berbeda-beda, maka ada baiknya script tersebut dibuat menjadi sebuah fungsi atau function sesuai dengan kebutuhan atau User-Defined Function. Untuk membuat function di R, gunakan function().

a <- 5
b <- 7
d <- a + b
d
## [1] 12

Elemen Fungsi

  1. Nama Fungsi: Nama yang diberikan untuk fungsi, digunakan untuk memanggilnya.

  2. Argumen: Variabel input yang diperlukan oleh fungsi untuk menjalankan tugas.

  3. Isi Fungsi: Kode yang dieksekusi saat fungsi dipanggil yang biasanya berisi perhitungan/operasi lain.

  4. Return: Fungsi mengembalikan hasil yang bisa berupa angka, vektor, data frame, atau objek lain. Jika tidak ada return(), fungsi akan mengembalikan hasil dari baris terakhir dalam blok kode.

sum_ab <- function(a, b){
  d <- a + b
  return(d)
}
sum_ab(a = 5, b = 7)
## [1] 12

Luas Segitiga

luassegitiga <- function (a, t){
  luas = 0.5*a*t
  return (luas)
}

luassegitiga(4,8)
## [1] 16

Kuadrat

kuadrat <- function(x) {
   rumus = x^2
   return (rumus)
}

kuadrat(10)
## [1] 100

Faktorial

FAKTORIAL=function(x){
      fak=1
      
      for (i in 1:x){fak=fak*i}
      return(fak)
}

x=3
FAKTORIAL(x)
## [1] 6

Koef. Determinasi

rsq <- function(x, y) {
      rumus = cor(x, y) ^ 2
      return (rumus)
}

x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 3, 8, 10)
rsq(x,y)
## [1] 0.8474576

4.2 Package

Package adalah sebuah kumpulan fungsi atau data yang dibuat untuk memudahkan proses di R tanpa harus menuliskan ulang script yang dibutuhkan. Saat ini package menjadi bagian yang sangat penting bagi Data Analyst atau Data Scientist ketika menggunakan R. Karena dengan package tambahan (yang belum ada ketika install R) pekerjaan dalam mengolah data menjadi lebih efisien.

Untuk menginstall package, gunakan install.packages(nama paket)

#install.packages("ggplot2")

Untuk memanggil package yang sudah terinstall, gunakan library()

#Contoh memanggil library yang akan digunakan

library(dplyr)      #manipulasi data
library(Hmisc)      #statistik deskriptif, analisis regresi, penanganan missing data
library(foreign)    #membaca dan menulis file data dalam berbagai format
library(MASS)       #metode analisis statistik
library(readxl)
library(writexl)
library(olsrr)      #Ordinary Least Squares (OLS) Regression
library(ggplot2)

5 If dan Looping

Ketika membahas struktur kendali pada suatu bahasa pemrograman pasti akan membahas tentang operator logika atau logical operator. Nilai dari logika akan selalu bernilai TRUE atau FALSE. Berikut ini tabel operator logika dan penjelasannya.

Operator Logika
& dan
| atau
! negasi
== sama dengan
!= tidak sama dengan
%in% ada diantara
> lebih besar dari
< lebih kecil dari
>= lebih besar sama dengan
<= lebih kecil sama dengan
&& dan
|| atau
2 %in% 1:5
## [1] TRUE
1 > 2 # 1 tidak lebih besar dari 2
## [1] FALSE
2 > 1:5
## [1]  TRUE FALSE FALSE FALSE FALSE
p <- c(TRUE, TRUE, FALSE, FALSE)
q <- c(TRUE, FALSE, TRUE, FALSE)
p & q
## [1]  TRUE FALSE FALSE FALSE

5.1 Fungsi if()

Struktur kendali pada bahasa pemrograman R yang umum digunakan adalah fungsi if(). Argumen yang dibutuhkan pada fungsi if() adalah sebuah vector logical tunggal bernilai TRUE atau FALSE. Untuk mendapatkan nilai logical ini digunakan operator logika yang sudah dibahas sebelumnya.

if(2 < 3) print("Kondisi tersebut benar")
## [1] "Kondisi tersebut benar"
a <- 1
b <- 12
if(a<b){
  print("ekspresi jika kondisi benar")
} else {
  print("jika kondisi salah")
}
## [1] "ekspresi jika kondisi benar"

5.2 Looping

Looping merupakan suatu cara untuk mengulang suatu perintah dengan kondisi yang ditentukan. Looping yang digunakan dalam R yaitu for, while, dan repeat.

Secara umum, diagramnya adalah:

Looping for

Looping for adalah salah satu bentuk perulangan yang digunakan untuk mengulang sejumlah perintah berdasarkan elemen-elemen dalam suatu objek, seperti vektor, list, atau range. Perulangan ini akan berjalan sebanyak jumlah elemen yang ada dalam objek tersebut.

Contoh 1:

for (i in 1:5) {
  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Contoh 2:

for (i in 1:5) {
  hasil <- i^2
  print(hasil)
}
## [1] 1
## [1] 4
## [1] 9
## [1] 16
## [1] 25

Looping while

Looping while adalah salah satu bentuk perulangan yang akan terus dijalankan selama kondisi tertentu bernilai TRUE. Dengan while, dapat diulang serangkaian perintah sampai suatu kondisi tidak lagi terpenuhi. Jika kondisi tersebut tidak pernah menjadi FALSE, maka perulangan akan terus berjalan tanpa henti (infinite loop).

x <- 1 # Inisialisasi variabel

while (x <= 5) {
  print(x)
  x <- x + 1  # Menambahkan x agar perulangan berhenti
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Looping repeat

Looping repeat adalah salah satu bentuk perulangan yang akan terus berjalan tanpa batas hingga dihentikan secara eksplisit dengan pernyataan break. Karena repeat tidak memiliki kondisi seperti while atau for, perulangan akan berjalan selamanya kecuali ada kondisi tertentu yang menghentikan loop.

x <- 1

repeat {
  print(x)
  x <- x + 1
  
  if (x > 5) {
    break  # Hentikan perulangan ketika x lebih dari 5
  }
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

6 Import & Ekspor Data

6.1 Import Data

Membaca CSV file

dataku <- read.csv ("tabelku.csv")

Membaca Excel file

library(readxl)
dataku <- read_excel ("tabelku.xlsx")

Membaca SPSS file

library(haven)
dataku <- read_sav ("tabelku.sav")

Membaca STATA file

library(haven)
dataku <- read_dta ("tabelku.dta")

6.2 Export dan Save File

Contoh data yang di-ekspor adalah:

data <- data.frame(
  id = 1:5,
  name = c("Alice", "Bob", "Charlie", "David", "Eva"),
  score = c(90, 85, 88, 92, 95)
)

Mengekspor CSV file

write.csv(data, "OutputCSV.csv")

Mengekspor excel file

write_xlsx(data, "OutputExcel.xlsx")

Mengekspor SPSS file

library(haven)
write_sav(data, "OutputSPSS.sav")

Mengekspor STATA file

library(haven)
write_dta(data, "OutputStata.dta")

7 Tabel

caff.marital <- matrix(c(652,1537,598,242,36,46,38,21,218,327,106,67),nrow=3,byrow=T)
caff.marital
##      [,1] [,2] [,3] [,4]
## [1,]  652 1537  598  242
## [2,]   36   46   38   21
## [3,]  218  327  106   67
#Penamaan kolom dari sebuah tabel
colnames(caff.marital) <- c("0","1-150","151-300",">300")
#Penamaan baris dari sebuah tabel
rownames(caff.marital) <-   c("Married","Prev.married","Single")
caff.marital
##                0 1-150 151-300 >300
## Married      652  1537     598  242
## Prev.married  36    46      38   21
## Single       218   327     106   67
#Membuat transpose dari sebuah tabel
t(caff.marital)
##         Married Prev.married Single
## 0           652           36    218
## 1-150      1537           46    327
## 151-300     598           38    106
## >300        242           21     67
#Membuat marginal tabel
margin.table(caff.marital,1)
##      Married Prev.married       Single 
##         3029          141          718
margin.table(caff.marital,2)
##       0   1-150 151-300    >300 
##     906    1910     742     330
#Membuat proporsi tabel
prop.table(caff.marital,1)
##                      0     1-150   151-300       >300
## Married      0.2152526 0.5074282 0.1974249 0.07989435
## Prev.married 0.2553191 0.3262411 0.2695035 0.14893617
## Single       0.3036212 0.4554318 0.1476323 0.09331476
prop.table(caff.marital,2)
##                      0      1-150    151-300       >300
## Married      0.7196468 0.80471204 0.80592992 0.73333333
## Prev.married 0.0397351 0.02408377 0.05121294 0.06363636
## Single       0.2406181 0.17120419 0.14285714 0.20303030

Untuk membuat isian desimal menjadi 2 digit, gunakan round ( ..., 2)

round(prop.table(caff.marital,2),2)
##                 0 1-150 151-300 >300
## Married      0.72  0.80    0.81 0.73
## Prev.married 0.04  0.02    0.05 0.06
## Single       0.24  0.17    0.14 0.20

8 Referensi

Spector, P. (2016). Data manipulation with R. CRC Press.

Wickham, H., & Grolemund, G. (2016). R for data science: Import, tidy, transform, visualize, and model data. O’Reilly Media.


Direktorat Statistik Kesejahteraan Rakyat, BPS,