R mendukung operasi matematika dasar seperti penjumlahan, pengurangan, perkalian, pembagian, dan perpangkatan.
2 + 3 # Penjumlahan
## [1] 5
5 - 1 # Pengurangan
## [1] 4
4 * 2 # Perkalian
## [1] 8
10 / 2 # Pembagian
## [1] 5
2^3 # Perpangkatan
## [1] 8
Variabel digunakan untuk menyimpan nilai dan melakukan operasi pada data.
a <- 10
b <- 5
c <- a + b
c # Menampilkan nilai variabel c
## [1] 15
vektor <- c(1, 2, 3, 4, 5)
vektor
## [1] 1 2 3 4 5
nama <- c("Ayuk", "Shella", "Hendra", "Nadya", "Alam", "Dwi", "Zahra")
nama
## [1] "Ayuk" "Shella" "Hendra" "Nadya" "Alam" "Dwi" "Zahra"
nama_factor <- factor(nama)
str(nama_factor)
## Factor w/ 7 levels "Alam","Ayuk",..: 2 6 4 5 1 3 7
levels(nama_factor)
## [1] "Alam" "Ayuk" "Dwi" "Hendra" "Nadya" "Shella" "Zahra"
table(nama_factor)
## nama_factor
## Alam Ayuk Dwi Hendra Nadya Shella Zahra
## 1 1 1 1 1 1 1
List dapat menyimpan berbagai tipe data dalam satu objek.
data_list <- list(
angka = c(10, 20, 30, 40),
teks = c("A", "B", "C"),
kategori = factor(c("Baik", "Sedang", "Buruk"))
)
print(data_list)
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
data_list$angka
## [1] 10 20 30 40
Membuat dataframe sederhana untuk menyimpan data tabular.
data_karyawan <- data.frame(
Nama = c("Akmal", "Dytha", "Amaa", "Elvan"),
Usia = c(25, 30, 27, 35),
Pekerjaan = factor(c("Pegawai", "Wirausaha", "Mahasiswa", "Pegawai"))
)
print(data_karyawan)
## Nama Usia Pekerjaan
## 1 Akmal 25 Pegawai
## 2 Dytha 30 Wirausaha
## 3 Amaa 27 Mahasiswa
## 4 Elvan 35 Pegawai
summary(data_karyawan)
## 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
summary(data_karyawan) # Menampilkan ringkasan statistik dari dataframe
## 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
##Menampilkan Array Fungsi print() digunakan untuk menampilkan isi array. Ini membantu melihat data yang disimpan dalam array.
array_data <- array(1:12, dim = c(3, 2, 2))
##Menampilkan Dimensi Array Fungsi dim() digunakan untuk menampilkan dimensi dari array. Ini membantu memahami struktur array.
dim(array_data) # Menampilkan dimensi dari array
## [1] 3 2 2
##Membuat Vektor dengan Nilai NA 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
# Mengecek nilai yang hilang
is.na(nilai) # Mengecek apakah ada nilai NA dalam vektor
## [1] FALSE FALSE TRUE FALSE FALSE TRUE FALSE
# Menghitung jumlah nilai NA dalam vektor
sum(is.na(nilai)) # Menghitung total nilai NA dalam vektor
## [1] 2
##Sequence Generation 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
x2 <- seq(0,10,length=6) # Membuat deret angka dengan 6 elemen
x2
## [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
##Pembulatan Pecahan Desimal 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 2 3 5 7 8 10
floor(x3) # Membulatkan nilai dalam 'x3' ke bawah
## [1] 0 1 3 5 6 8 10
ceiling(x3) # Membulatkan nilai dalam 'x3' ke atas
## [1] 0 2 4 5 7 9 10
##Replicate Elements of Vectors and Lists 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"), 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"
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"
rep(c("A", "B", "C"), each=2, 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"
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
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
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
##Fungsi Dasar Statistika pada R 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
max(y) # Menghitung nilai maksimum dari vektor y
## [1] 6
mean(x) # Menghitung rata-rata dari vektor x
## [1] 4.5
var(y) # Menghitung variansi dari vektor y
## [1] 2.666667
cor(x, y[1:length(x)]) # Menghitung korelasi antara vektor x dan y (panjang harus sama)
## [1] 1
# Menentukan range (jangkauan nilai)
range(x) # Menghitung range dari vektor x
## [1] 3 6
range(y) # Menghitung range dari vektor y
## [1] 2 6
##Simulasi Sampel Acak Fungsi sample() digunakan untuk mengambil sampel acak dari data. Ini berguna untuk simulasi atau pengambilan sampel secara acak.
# Simulasi pelemparan koin (0 = ekor, 1 = kepala)
set.seed(123) # Mengatur seed untuk hasil yang konsisten
sample(0:1, 30, replace = TRUE) # Simulasi pelemparan koin sebanyak 30 kali
## [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
# Simulasi pengambilan sampel huruf "A" dan "G" sebanyak 15 kali
sample(c("A", "G"), 15, replace = TRUE) # Simulasi pengambilan sampel huruf "A" dan "G"
## [1] "A" "G" "A" "G" "G" "A" "A" "A" "A" "G" "A" "G" "G" "A" "A"
# Simulasi pelemparan dadu sebanyak 30 kali
sample(1:6, 30, replace = TRUE) # Simulasi pelemparan dadu sebanyak 30 kali
## [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
##Praktikum Manipulasi Dasar
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)
Buatlah suatu variabel bernama “data” yang berupa data lokal dengan menggunakan fungsi tbl_df() yang berisikan data iris
data <- tbl_df(iris)
## Warning: `tbl_df()` was deprecated in dplyr 1.0.0.
## ℹ Please use `tibble::as_tibble()` instead.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
class(data)
## [1] "tbl_df" "tbl" "data.frame"
data
## # A tibble: 150 × 5
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## <dbl> <dbl> <dbl> <dbl> <fct>
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3 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 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## # ℹ 140 more rows
Ambil data tersebut dari baris pertama hingga ke sepuluh dan masukkan ke dalam variabel baru yaitu data_slice
data_slice <- slice(data, 1:10)
data_slice
## # A tibble: 10 × 5
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## <dbl> <dbl> <dbl> <dbl> <fct>
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3 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 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
Urutkan data_slice berdasarkan nilai pada kolom Sepal.Length secara descending
datatable <- data.table(iris)
datatable
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## <num> <num> <num> <num> <fctr>
## 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
## ---
## 146: 6.7 3.0 5.2 2.3 virginica
## 147: 6.3 2.5 5.0 1.9 virginica
## 148: 6.5 3.0 5.2 2.0 virginica
## 149: 6.2 3.4 5.4 2.3 virginica
## 150: 5.9 3.0 5.1 1.8 virginica
Buatlah kolom baru pada tabatable dengan nama new_col menggunakan operator $ dengan elemen sama dengan kolom Species
setkey(datatable, Species)
key(datatable)
## [1] "Species"
Hitung mean, interquartile, dan median dari data Sepal.Length berdasarkan grup yang diperoleh dari Species dengan fungsi by
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
Buatlah plot data dengan menggunakan ggplot2 dan simpan plot dalam variabel plot_data. Kemudian tampilkan plot tersebut.
plot_data <- ggplot(data,aes(x=Sepal.Length, y=Sepal.Width)) + geom_point(aes(colour=Species))
plot_data
Latihan 1. Ketikkan perintah di bawah ini dan berikan pernyataan apa saja yang dapat kalian peroleh dari perintah tersebut! —————————————————– nama_vector <- c(5,FALSE,“true”,“8.3”,“Statistika”) nama_vector —————————————————–
nama_vector <- c(5, FALSE, "true", "8.3", "Statistika")
nama_vector
## [1] "5" "FALSE" "true" "8.3" "Statistika"
contoh_list <- list(5, FALSE, "true", "8.3", "Statistika")
contoh_list
## [[1]]
## [1] 5
##
## [[2]]
## [1] FALSE
##
## [[3]]
## [1] "true"
##
## [[4]]
## [1] "8.3"
##
## [[5]]
## [1] "Statistika"
kelompok_kkn <- data.frame(
nama = c("ALAM", "AYUDYAH", "VIBIYOLA", "SHELLA", "DWI", "ZAHRA", "NADYA", "NANDA", "DENNY", "PUTRI"),
nim = c("001", "002", "003", "004", "005", "006", "007", "008", "009", "010"),
prodi = c("Statistika", "Akuntansi", "DKV", "Bisnis", "Kimia", "Inggris", "Teknik", "Matematika", "Psikologi", "Kedokteran")
)
print(kelompok_kkn)
## nama nim prodi
## 1 ALAM 001 Statistika
## 2 AYUDYAH 002 Akuntansi
## 3 VIBIYOLA 003 DKV
## 4 SHELLA 004 Bisnis
## 5 DWI 005 Kimia
## 6 ZAHRA 006 Inggris
## 7 NADYA 007 Teknik
## 8 NANDA 008 Matematika
## 9 DENNY 009 Psikologi
## 10 PUTRI 010 Kedokteran
array_data <- array(1:24, dim = c(3, 4, 2))