# Operasi Aritmatika
2 + 3
## [1] 5
5 - 1  # Pengurangan
## [1] 4
4 * 2  # Perkalian
## [1] 8
10 / 2 # Pembagian
## [1] 5
2^3    # Pangkat
## [1] 8

Pembuatan Variabel

Variabel digunakan untuk menyimpan data di R. Kita bisa mengisi variabel dengan nilai tertentu.

a <- 10  # Variabel 'a'
b <- 5   # Variabel 'b'
c <- a + b  # Penjumlahan 'a' dan 'b'
c  # Menampilkan hasil
## [1] 15

Struktur Data Dasar

vektor <- c(1, 2, 3, 4, 5)  # Vektor numerik
vektor  # Tampilkan vektor
## [1] 1 2 3 4 5

Membuat Vektor Karakter

warna <- c("Merah", "Biru", "Hijau", "Merah", "Biru", "Hijau", "Merah")
warna  # Tampilkan vektor karakter
## [1] "Merah" "Biru"  "Hijau" "Merah" "Biru"  "Hijau" "Merah"

Mengonversi ke Faktor

warna_factor <- factor(warna)
str(warna_factor)  # Struktur faktor
##  Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
levels(warna_factor)  # Level dalam faktor
## [1] "Biru"  "Hijau" "Merah"

Frekuensi Tiap Kategori

table(warna_factor)
## warna_factor
##  Biru Hijau Merah 
##     2     2     3

Membuat List dengan Berbagai Jenis Data

data_list <- list(
  angka = c(10, 20, 30, 40),
  teks = c("A", "B", "C"),
  kategori = factor(c("Baik", "Sedang", "Buruk"))
)
print(data_list)  # Menampilkan list
## $angka
## [1] 10 20 30 40
## 
## $teks
## [1] "A" "B" "C"
## 
## $kategori
## [1] Baik   Sedang Buruk 
## Levels: Baik Buruk Sedang

Mengakses Elemen List

data_list$angka   # Elemen 'angka'
## [1] 10 20 30 40
data_list[[2]]    # Elemen kedua (teks)
## [1] "A" "B" "C"
data_list[[3]]
## [1] Baik   Sedang Buruk 
## Levels: Baik Buruk Sedang

Membuat Data Frame

data_karyawan <- data.frame(
  Nama = c("Andi", "Budi", "Citra", "Dewi"),
  Usia = c(25, 30, 27, 35),
  Pekerjaan = factor(c("Pegawai", "Wirausaha", "Mahasiswa", "Pegawai"))
)
print(data_karyawan)  # Menampilkan data frame
##    Nama Usia Pekerjaan
## 1  Andi   25   Pegawai
## 2  Budi   30 Wirausaha
## 3 Citra   27 Mahasiswa
## 4  Dewi   35   Pegawai
summary(data_karyawan)  # Ringkasan statistik
##      Nama                Usia           Pekerjaan
##  Length:4           Min.   :25.00   Mahasiswa:1  
##  Class :character   1st Qu.:26.50   Pegawai  :2  
##  Mode  :character   Median :28.50   Wirausaha:1  
##                     Mean   :29.25                
##                     3rd Qu.:31.25                
##                     Max.   :35.00

Membuat Array 3 Dimensi

array_data <- array(1:24, dim = c(3, 4, 2))
print(array_data)  # Tampilkan 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
dim(array_data)  # Dimensi array
## [1] 3 4 2

Mengelola Nilai NA

nilai <- c(90, 85, NA, 75, 80, NA, 95)
is.na(nilai)  # Mengecek NA
## [1] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
sum(is.na(nilai))  # Jumlah NA
## [1] 2

Sequence Generation

x1 <- seq(0, 10, length=5)
x1  # Tampilkan sequence
## [1]  0.0  2.5  5.0  7.5 10.0

Pembulatan Pecahan

round(x1)  # Pembulatan ke terdekat
## [1]  0  2  5  8 10
floor(x1)  # Pembulatan ke bawah
## [1]  0  2  5  7 10
ceiling(x1)  # Pembulatan ke atas
## [1]  0  3  5  8 10

Statistik Dasar

x <- c(3, 4, 5, 6)
y <- c(2, 3, 4, 5, 6, 6)
min(x)
## [1] 3
max(y)
## [1] 6
mean(x)
## [1] 4.5
var(y)
## [1] 2.666667
cor(x, y[1:length(x)])
## [1] 1
range(x)
## [1] 3 6
range(y)
## [1] 2 6

Simulasi Sampel Acak

set.seed(123)
sample(0:1, 30, replace = TRUE)  # Koin
##  [1] 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1
sample(c("A", "G"), 15, replace = TRUE)  # Huruf
##  [1] "A" "G" "A" "G" "G" "A" "A" "A" "A" "G" "A" "G" "G" "A" "A"
sample(1:6, 30, replace = TRUE)  # Dadu
##  [1] 1 1 2 3 4 5 5 3 6 1 2 5 5 4 5 2 1 1 3 1 6 5 1 2 4 4 6 6 3 6

Menggunakan Paket Tambahan

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
library(data.table)
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
library(ggplot2)

Manipulasi Data Frame dengan dplyr

data <- tibble::as_tibble(iris)  # Konversi iris ke tibble
class(data)
## [1] "tbl_df"     "tbl"        "data.frame"
data_slice <- dplyr::slice(data, 1:10)
arrange(data_slice, desc(Sepal.Length))
## # A tibble: 10 × 5
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##           <dbl>       <dbl>        <dbl>       <dbl> <fct>  
##  1          5.4         3.9          1.7         0.4 setosa 
##  2          5.1         3.5          1.4         0.2 setosa 
##  3          5           3.6          1.4         0.2 setosa 
##  4          5           3.4          1.5         0.2 setosa 
##  5          4.9         3            1.4         0.2 setosa 
##  6          4.9         3.1          1.5         0.1 setosa 
##  7          4.7         3.2          1.3         0.2 setosa 
##  8          4.6         3.1          1.5         0.2 setosa 
##  9          4.6         3.4          1.4         0.3 setosa 
## 10          4.4         2.9          1.4         0.2 setosa

Manipulasi Data Table

datatable <- data.table(iris)
datatable$new_col <- datatable$Species
setkey(datatable, Species)
key(datatable)
## [1] "Species"
datatable[, .(mean=mean(Sepal.Length), IQR=IQR(Sepal.Length), median=median(Sepal.Length)), by=Species]
## Key: <Species>
##       Species  mean   IQR median
##        <fctr> <num> <num>  <num>
## 1:     setosa 5.006 0.400    5.0
## 2: versicolor 5.936 0.700    5.9
## 3:  virginica 6.588 0.675    6.5

Plot dengan ggplot2

plot_data <- ggplot(data, aes(x=Sepal.Length, y=Sepal.Width, colour=Species)) + geom_point()
plot_data

Kode ini telah diperbaiki sehingga tidak akan mengalami error. Jika ada tambahan atau perubahan lain yang diperlukan, silakan beri tahu!