2 + 3 # Penjumlahan: Menambahkan 2 dan 3, hasilnya 5
## [1] 5
## [1] 5
5 - 1 # Pengurangan: Mengurangi 5 dengan 1, hasilnya 4
## [1] 4
## [1] 4
4 * 2 # Perkalian: Mengalikan 4 dengan 2, hasilnya 8
## [1] 8
## [1] 8
10 / 2 # Pembagian: Membagi 10 dengan 2, hasilnya 5
## [1] 5
## [1] 5
2^3 # Pangkat: Menghitung 2 pangkat 3, hasilnya 8
## [1] 8
## [1] 8
Variabel digunakan untuk menyimpan data. Di R, kita bisa membuat variabel dan mengisinya dengan nilai tertentu, lalu melakukan operasi dengan variabel tersebut.
a <- 10 # Membuat variabel 'a' dan mengisinya dengan nilai 10
b <- 5 # Membuat variabel 'b' dan mengisinya dengan nilai 5
c <- a + b # Membuat variabel 'c' yang berisi hasil penjumlahan 'a' dan 'b'
c # Menampilkan nilai dari variabel 'c'
## [1] 15
## [1] 15
R memiliki beberapa struktur data dasar seperti vektor, faktor, list, dan dataframe. Struktur data ini digunakan untuk menyimpan dan mengelola data secara efisien.
vektor <- c(1, 2, 3, 4, 5) # Membuat vektor numerik dengan nilai 1 hingga 5
vektor # Menampilkan isi vektor
## [1] 1 2 3 4 5
## [1] 1 2 3 4 5
Vektor karakter adalah kumpulan data teks yang disimpan dalam satu variabel. Di R, kita bisa membuat vektor karakter menggunakan fungsi c().
warna <- c("Merah", "Biru", "Hijau", "Merah", "Biru", "Hijau", "Merah")
warna # Menampilkan isi vektor karakter
## [1] "Merah" "Biru" "Hijau" "Merah" "Biru" "Hijau" "Merah"
## [1] "Merah" "Biru" "Hijau" "Merah" "Biru" "Hijau" "Merah"
str(warna)
## chr [1:7] "Merah" "Biru" "Hijau" "Merah" "Biru" "Hijau" "Merah"
## chr [1:7] "Merah" "Biru" "Hijau" "Merah" "Biru" "Hijau" "Merah"
Faktor adalah struktur data di R yang digunakan untuk menyimpan data kategorikal. Konversi ke faktor memungkinkan kita untuk menganalisis data kategorikal dengan lebih efisien.
warna_factor <- factor(warna) # Mengubah vektor karakter menjadi faktor
str(warna_factor)
## Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
## Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
Fungsi str() digunakan untuk menampilkan struktur dari suatu objek, termasuk faktor. Ini membantu memahami tipe data dan level yang ada dalam faktor.
str(warna_factor) # Menampilkan struktur dari faktor 'warna_factor'
## Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
## Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
Level adalah kategori unik dalam faktor. Fungsi levels() digunakan untuk menampilkan semua level yang ada dalam suatu faktor.
levels(warna_factor) # Menampilkan level atau kategori unik dalam faktor
## [1] "Biru" "Hijau" "Merah"
## [1] "Biru" "Hijau" "Merah"
Fungsi table() digunakan untuk menghitung frekuensi masing-masing kategori dalam faktor. Ini berguna untuk analisis data kategorikal.
table(warna_factor) # Menampilkan frekuensi masing-masing kategori dalam faktor
## warna_factor
## Biru Hijau Merah
## 2 2 3
## warna_factor
## Biru Hijau Merah
## 2 2 3
List adalah struktur data yang dapat menyimpan berbagai jenis data, seperti vektor, teks, dan faktor, dalam satu objek. Ini membuat list sangat fleksibel.
data_list <- list(
angka = c(10, 20, 30, 40),
teks = c("A", "B", "C"),
kategori = factor(c("Baik", "Sedang", "Buruk"))
)
data_list
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
Fungsi print() digunakan untuk menampilkan seluruh isi list. Ini membantu melihat data yang disimpan dalam list.
print(data_list) # Menampilkan seluruh isi list
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
Kita bisa mengakses elemen dalam list menggunakan operator $ atau [[ ]]. Ini memungkinkan kita untuk mengambil data spesifik dari list.
data_list$angka # Mengakses elemen 'angka' dalam list
## [1] 10 20 30 40
## [1] 10 20 30 40
data_list[[2]] # Mengakses elemen kedua dalam list (vektor 'teks')
## [1] "A" "B" "C"
## [1] "A" "B" "C"
Dataframe adalah struktur data tabular yang terdiri dari baris dan kolom. Setiap kolom dapat memiliki tipe data yang berbeda, mirip dengan tabel di database.
data_karyawan <- data.frame(
Nama = c("Andi", "Budi", "Citra", "Dewi", "Tika"), # Kolom Nama
Usia = c(25, 30, 27, 35, 28), # Kolom Usia
Pekerjaan = factor(c("Pegawai", "Wirausaha", "Mahasiswa", "Pegawai", "Pegawai")) # Kolom Pekerjaan
)
Fungsi print() digunakan untuk menampilkan seluruh isi dataframe. Ini membantu melihat data dalam format tabel.
print(data_karyawan) # Menampilkan seluruh isi dataframe
## Nama Usia Pekerjaan
## 1 Andi 25 Pegawai
## 2 Budi 30 Wirausaha
## 3 Citra 27 Mahasiswa
## 4 Dewi 35 Pegawai
## 5 Tika 28 Pegawai
## Nama Usia Pekerjaan
## 1 Andi 25 Pegawai
## 2 Budi 30 Wirausaha
## 3 Citra 27 Mahasiswa
## 4 Dewi 35 Pegawai
## 5 Tika 28 Pegawai
Fungsi summary() memberikan ringkasan statistik dari dataframe, seperti nilai minimum, maksimum, rata-rata, dan frekuensi untuk data kategorikal.
summary(data_karyawan) # Menampilkan ringkasan statistik dari dataframe
## Nama Usia Pekerjaan
## Length:5 Min. :25 Mahasiswa:1
## Class :character 1st Qu.:27 Pegawai :3
## Mode :character Median :28 Wirausaha:1
## Mean :29
## 3rd Qu.:30
## Max. :35
## Nama Usia Pekerjaan
## Length:5 Min. :25 Mahasiswa:1
## Class :character 1st Qu.:27 Pegawai :3
## Mode :character Median :28 Wirausaha:1
## Mean :29
## 3rd Qu.:30
## Max. :35
Array adalah struktur data multidimensi. Array 3 dimensi dapat digunakan untuk menyimpan data dalam bentuk matriks 3D.
array_data <- array(1:24, dim = c(3, 4, 2)) # Membuat array dengan dimensi 3x4x2
array_data
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 23
## [3,] 15 18 21 24
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 23
## [3,] 15 18 21 24
Fungsi print() digunakan untuk menampilkan isi array. Ini membantu melihat data yang disimpan dalam array.
print(array_data) # Menampilkan isi array
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 23
## [3,] 15 18 21 24
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 23
## [3,] 15 18 21 24
Fungsi dim() digunakan untuk menampilkan dimensi dari array. Ini membantu memahami struktur array.
dim(array_data) # Menampilkan dimensi dari array
## [1] 3 4 2
## [1] 3 4 2
Nilai NA (Not Available) digunakan untuk merepresentasikan data yang hilang. Kita bisa membuat vektor yang mengandung nilai NA dan melakukan pengecekan.
nilai <- c(90, 85, NA, 75, 80, NA, 95) # Membuat vektor dengan beberapa nilai NA
nilai
## [1] 90 85 NA 75 80 NA 95
## [1] 90 85 NA 75 80 NA 95
Sequence generation digunakan untuk membuat urutan angka dengan interval tertentu. Fungsi seq() membantu membuat urutan angka dengan panjang atau interval yang ditentukan.
x1 <- seq(0, 10, length=5) # Membuat sequence dari 0 hingga 10 dengan 5 elemen
x1 # Menampilkan sequence
## [1] 0.0 2.5 5.0 7.5 10.0
## [1] 0.0 2.5 5.0 7.5 10.0
x2 <- seq(0,10,length=6) # Membuat deret angka dengan 6 elemen
x2
## [1] 0 2 4 6 8 10
## [1] 0 2 4 6 8 10
x3 <- seq(0,10,length=7) # Membuat deret angka dengan 7 elemen
x3
## [1] 0.000000 1.666667 3.333333 5.000000 6.666667 8.333333 10.000000
## [1] 0.000000 1.666667 3.333333 5.000000 6.666667 8.333333 10.000000
x3 <- seq(0,15,length=15) # Membuat deret angka dengan 10 elemen
x3
## [1] 0.000000 1.071429 2.142857 3.214286 4.285714 5.357143 6.428571
## [8] 7.500000 8.571429 9.642857 10.714286 11.785714 12.857143 13.928571
## [15] 15.000000
## [1] 0.000000 1.071429 2.142857 3.214286 4.285714 5.357143 6.428571
## [8] 7.500000 8.571429 9.642857 10.714286 11.785714 12.857143 13.928571
## [15] 15.000000
x4 <- numeric(10) # panjang barisan
x4[1] <- 2 # nilai awal
pola <- c("+2", "*2", "/2")
for (i in 2:length(x4)) {
aturan <- pola[(i - 2) %% length(pola) + 1]
if (aturan == "+2") x4[i] <- x4[i-1] + 2
if (aturan == "*2") x4[i] <- x4[i-1] * 2
if (aturan == "/2") x4[i] <- x4[i-1] / 2
}
x4
## [1] 2 4 8 4 6 12 6 8 16 8
## [1] 2 4 8 4 6 12 6 8 16 8
R menyediakan fungsi untuk membulatkan angka desimal, seperti round(), floor(), dan ceiling(). Fungsi ini berguna untuk mengatur presisi angka.
round(x3) # Membulatkan nilai dalam 'x3' ke bilangan bulat terdekat
## [1] 0 1 2 3 4 5 6 8 9 10 11 12 13 14 15
## [1] 0 1 2 3 4 5 6 8 9 10 11 12 13 14 15
floor(x3) # Membulatkan nilai dalam 'x3' ke bawah
## [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 15
## [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 15
ceiling(x3) # Membulatkan nilai dalam 'x3' ke atas
## [1] 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15
## [1] 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Fungsi rep() digunakan untuk mengulang elemen dalam vektor atau list. Kita bisa mengulang seluruh vektor atau setiap elemennya secara terpisah.
rep(c("A", "B", "C"), times=5) # Mengulang vektor "A", "B", "C" sebanyak 5 kali
## [1] "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C"
## [1] "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C"
rep(c("A","B","C"), times = c(1, 2, 3))
## [1] "A" "B" "B" "C" "C" "C"
## [1] "A" "B" "B" "C" "C" "C"
rep(c("A", "B", "C"), each=5) # Mengulang setiap elemen vektor "A", "B", "C" sebanyak 5 kali
## [1] "A" "A" "A" "A" "A" "B" "B" "B" "B" "B" "C" "C" "C" "C" "C"
## [1] "A" "A" "A" "A" "A" "B" "B" "B" "B" "B" "C" "C" "C" "C" "C"
rep(c("A", "B", "C"), each=2, times=5) # Mengulang setiap elemen vektor "A", "B", "C" sebanyak 2 kali, dan seluruhnya diulang 5 kali
## [1] "A" "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C" "A"
## [20] "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C"
## [1] "A" "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C" "A"
## [20] "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C"
rep(1:5, 5) # Mengulang vektor 1 hingga 5 sebanyak 5 kali
## [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
## [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
rep(1:5, each=5) # Mengulang setiap elemen vektor 1 hingga 5 sebanyak 5 kali
## [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
## [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
rep(1:5, each=2, 5) # Mengulang setiap elemen vektor 1 hingga 5 sebanyak 2 kali, dan seluruhnya diulang 5 kali
## [1] 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4
## [39] 5 5 1 1 2 2 3 3 4 4 5 5
## [1] 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4
## [39] 5 5 1 1 2 2 3 3 4 4 5 5
rep(seq(0,10,length=6),times = 3)
## [1] 0 2 4 6 8 10 0 2 4 6 8 10 0 2 4 6 8 10
## [1] 0 2 4 6 8 10 0 2 4 6 8 10 0 2 4 6 8 10
rep(seq(0,10,length=6),each = 2, times = 3)
## [1] 0 0 2 2 4 4 6 6 8 8 10 10 0 0 2 2 4 4 6 6 8 8 10 10 0
## [26] 0 2 2 4 4 6 6 8 8 10 10
## [1] 0 0 2 2 4 4 6 6 8 8 10 10 0 0 2 2 4 4 6 6 8 8 10 10 0
## [26] 0 2 2 4 4 6 6 8 8 10 10
grup <- rep(c("Kontrol", "Perlakuan"), each = 10)
waktu <- rep(1:10, times = 2)
cbind(grup, waktu)
## grup waktu
## [1,] "Kontrol" "1"
## [2,] "Kontrol" "2"
## [3,] "Kontrol" "3"
## [4,] "Kontrol" "4"
## [5,] "Kontrol" "5"
## [6,] "Kontrol" "6"
## [7,] "Kontrol" "7"
## [8,] "Kontrol" "8"
## [9,] "Kontrol" "9"
## [10,] "Kontrol" "10"
## [11,] "Perlakuan" "1"
## [12,] "Perlakuan" "2"
## [13,] "Perlakuan" "3"
## [14,] "Perlakuan" "4"
## [15,] "Perlakuan" "5"
## [16,] "Perlakuan" "6"
## [17,] "Perlakuan" "7"
## [18,] "Perlakuan" "8"
## [19,] "Perlakuan" "9"
## [20,] "Perlakuan" "10"
## grup waktu
## [1,] "Kontrol" "1"
## [2,] "Kontrol" "2"
## [3,] "Kontrol" "3"
## [4,] "Kontrol" "4"
## [5,] "Kontrol" "5"
## [6,] "Kontrol" "6"
## [7,] "Kontrol" "7"
## [8,] "Kontrol" "8"
## [9,] "Kontrol" "9"
## [10,] "Kontrol" "10"
## [11,] "Perlakuan" "1"
## [12,] "Perlakuan" "2"
## [13,] "Perlakuan" "3"
## [14,] "Perlakuan" "4"
## [15,] "Perlakuan" "5"
## [16,] "Perlakuan" "6"
## [17,] "Perlakuan" "7"
## [18,] "Perlakuan" "8"
## [19,] "Perlakuan" "9"
## [20,] "Perlakuan" "10"
R menyediakan fungsi statistik dasar seperti min(), max(), mean(), var(), dan cor() untuk menghitung nilai statistik dari data. Fungsi ini sangat berguna untuk analisis data.
# Membuat data x dan y
x <- c(3, 4, 5, 6) # Membuat vektor x
y <- c(2, 3, 4, 5, 6, 6) # Membuat vektor y
# Menghitung nilai statistik dasar
min(x) # Menghitung nilai minimum dari vektor x
## [1] 3
## [1] 3
max(y) # Menghitung nilai maksimum dari vektor y
## [1] 6
## [1] 6
mean(x) # Menghitung rata-rata dari vektor x
## [1] 4.5
## [1] 4.5
var(y) # Menghitung variansi dari vektor y
## [1] 2.666667
## [1] 2.666667
cor(x, y[1:length(x)]) # Menghitung korelasi antara vektor x dan y (panjang harus sama)
## [1] 1
## [1] 1
# Menentukan range (jangkauan nilai)
range(x) # Menghitung range dari vektor x
## [1] 3 6
## [1] 3 6
range(y) # Menghitung range dari vektor y
## [1] 2 6
## [1] 2 6
Fungsi sample() digunakan untuk mengambil sampel acak dari data. Ini berguna untuk simulasi atau pengambilan sampel secara acak.
# Simulasi pelemparan koin (0 = gambar, 1 = angka)
set.seed(11)
sample(0:1,100, replace = TRUE) # Simulasi pelemparan koin sebanyak 30 kali
## [1] 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1
## [38] 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0
## [75] 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1
## [1] 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1
## [38] 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0
## [75] 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1
# Simulasi pengambilan sampel huruf "A" dan "G" sebanyak 15 kali
set.seed(123)
sample(c("A", "G"), 15, replace = TRUE) # Simulasi pengambilan sampel huruf "A" dan "G"
## [1] "A" "A" "A" "G" "A" "G" "G" "G" "A" "A" "G" "G" "G" "A" "G"
## [1] "A" "A" "A" "G" "A" "G" "G" "G" "A" "A" "G" "G" "G" "A" "G"
set.seed(1)
# Simulasi pelemparan dadu sebanyak 30 kali
sample(1:6, 30, replace = TRUE) # Simulasi pelemparan dadu sebanyak 30 kali
## [1] 1 4 1 2 5 3 6 2 3 3 1 5 5 2 6 6 2 1 5 5 1 1 6 5 5 2 2 6 1 4
## [1] 1 4 1 2 5 3 6 2 3 3 1 5 5 2 6 6 2 1 5 5 1 1 6 5 5 2 2 6 1 4