4 + 2 # Penjumlahan
## [1] 6
7 - 1 # Pengurangan
## [1] 6
3 * 2 # Perkalian
## [1] 6
18/3 # Pembagian
## [1] 6
2^3 # Pangkat
## [1] 8
a <- 10
b <- 5
c <- a + b
c # Menampilkan nilai variabel
## [1] 15
vektor <- c(1,2,3,4,5)
vektor
## [1] 1 2 3 4 5
bunga <- c("mawar","anggrek","tulip","mawar","anggrek","tulip","mawar")
bunga
## [1] "mawar" "anggrek" "tulip" "mawar" "anggrek" "tulip" "mawar"
bunga_factor <- factor(bunga)
str(bunga_factor) # menampilkan struktur dari faktor 'warna_factor"
## Factor w/ 3 levels "anggrek","mawar",..: 2 1 3 2 1 3 2
levels(bunga_factor)
## [1] "anggrek" "mawar" "tulip"
table(bunga_factor)
## bunga_factor
## anggrek mawar tulip
## 2 3 2
data_list <- list(
angka = c(10, 20, 30, 40),
teks = c("A", "B", "C"),
kategori = factor(c("Baik", "Sedang", "Buruk"))
)
print(data_list) # Menampilkan isi list
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
data_list$angka # elemen 'angka'
## [1] 10 20 30 40
data_list[[2]]
## [1] "A" "B" "C"
data_karyawan <- data.frame(
Nama = c("Aqeela", "Mohan", "Zara", "Fattah"), # kolom nama
Usia = c(17, 19, 14, 19), # kolom usia
Pekerjaan = factor(c("Manajer", "Vokalis", "Ballet", "CEO"))
)
print(data_karyawan)
## Nama Usia Pekerjaan
## 1 Aqeela 17 Manajer
## 2 Mohan 19 Vokalis
## 3 Zara 14 Ballet
## 4 Fattah 19 CEO
summary(data_karyawan)
## Nama Usia Pekerjaan
## Length:4 Min. :14.00 Ballet :1
## Class :character 1st Qu.:16.25 CEO :1
## Mode :character Median :18.00 Manajer:1
## Mean :17.25 Vokalis:1
## 3rd Qu.:19.00
## Max. :19.00
array_data <- array(1:24, dim = c(3,4,2))
print(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
dim(array_data)
## [1] 3 4 2
nilai <- c(90,85, NA, 75, 80, NA, 95) # membuat vektor dengan beberapa nilai NA
is.na(nilai) # mengecek nilai NA dalam vektor
## [1] FALSE FALSE TRUE FALSE FALSE TRUE FALSE
sum(is.na(nilai)) # Menghitung total nilai NA dlm vektor
## [1] 2
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
x4 <- seq(0,10,length=10) # Membuat deret angka dengan 7 elemen
x4
## [1] 0.000000 1.111111 2.222222 3.333333 4.444444 5.555556 6.666667
## [8] 7.777778 8.888889 10.000000
round(x3) # membulatkan nilai 'x3' ke bilangan bulat
## [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) # membuat nilai dalam 'x3' ke atas
## [1] 0 2 4 5 7 9 10
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
# 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
## [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 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)
## [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)
## [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
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## 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)
## Warning: package 'data.table' was built under R version 4.3.3
##
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
##
## between, first, last
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
data <- as_tibble(mtcars)
class(data)
## [1] "tbl_df" "tbl" "data.frame"
data
## # A tibble: 32 × 11
## mpg cyl disp hp drat wt qsec vs am gear carb
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
## 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
## 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
## 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
## 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
## 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
## 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
## 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
## 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
## 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
## # ℹ 22 more rows
data_slice <- slice(data, 1:15)
data_slice
## # A tibble: 15 × 11
## mpg cyl disp hp drat wt qsec vs am gear carb
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
## 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
## 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
## 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
## 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
## 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
## 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
## 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
## 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
## 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
## 11 17.8 6 168. 123 3.92 3.44 18.9 1 0 4 4
## 12 16.4 8 276. 180 3.07 4.07 17.4 0 0 3 3
## 13 17.3 8 276. 180 3.07 3.73 17.6 0 0 3 3
## 14 15.2 8 276. 180 3.07 3.78 18 0 0 3 3
## 15 10.4 8 472 205 2.93 5.25 18.0 0 0 3 4
arrange(data_slice, desc(data_slice$mpg))
## # A tibble: 15 × 11
## mpg cyl disp hp drat wt qsec vs am gear carb
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
## 2 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
## 3 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
## 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
## 5 21 6 160 110 3.9 2.62 16.5 0 1 4 4
## 6 21 6 160 110 3.9 2.88 17.0 0 1 4 4
## 7 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
## 8 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
## 9 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
## 10 17.8 6 168. 123 3.92 3.44 18.9 1 0 4 4
## 11 17.3 8 276. 180 3.07 3.73 17.6 0 0 3 3
## 12 16.4 8 276. 180 3.07 4.07 17.4 0 0 3 3
## 13 15.2 8 276. 180 3.07 3.78 18 0 0 3 3
## 14 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
## 15 10.4 8 472 205 2.93 5.25 18.0 0 0 3 4
datatable <- data.table(mtcars)
datatable
## mpg cyl disp hp drat wt qsec vs am gear carb
## <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
## 1: 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## 2: 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## 3: 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## 4: 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## 5: 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## 6: 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## 7: 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## 8: 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## 9: 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## 10: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
## 11: 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
## 12: 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## 13: 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## 14: 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## 15: 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## 16: 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## 17: 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## 18: 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
## 19: 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
## 20: 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
## 21: 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
## 22: 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
## 23: 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
## 24: 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## 25: 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
## 26: 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
## 27: 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
## 28: 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
## 29: 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## 30: 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
## 31: 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
## 32: 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
## mpg cyl disp hp drat wt qsec vs am gear carb
datatable$new_col <- datatable$hp
datatable$new_col
## [1] 110 110 93 110 175 105 245 62 95 123 123 180 180 180 205 215 230 66 52
## [20] 65 97 150 150 245 175 66 91 113 264 175 335 109
setkey(datatable, hp)
key(datatable)
## [1] "hp"
datatable[,.(mean=mean(mpg), IQR=IQR(mpg), median=median(mpg)), by=hp]
## Key: <hp>
## hp mean IQR median
## <num> <num> <num> <num>
## 1: 52 30.40000 0.00 30.40
## 2: 62 24.40000 0.00 24.40
## 3: 65 33.90000 0.00 33.90
## 4: 66 29.85000 2.55 29.85
## 5: 91 26.00000 0.00 26.00
## 6: 93 22.80000 0.00 22.80
## 7: 95 22.80000 0.00 22.80
## 8: 97 21.50000 0.00 21.50
## 9: 105 18.10000 0.00 18.10
## 10: 109 21.40000 0.00 21.40
## 11: 110 21.13333 0.20 21.00
## 12: 113 30.40000 0.00 30.40
## 13: 123 18.50000 0.70 18.50
## 14: 150 15.35000 0.15 15.35
## 15: 175 19.20000 0.50 19.20
## 16: 180 16.30000 1.05 16.40
## 17: 205 10.40000 0.00 10.40
## 18: 215 10.40000 0.00 10.40
## 19: 230 14.70000 0.00 14.70
## 20: 245 13.80000 0.50 13.80
## 21: 264 15.80000 0.00 15.80
## 22: 335 15.00000 0.00 15.00
## hp mean IQR median
plot_data <- ggplot(data,aes(x=mpg, y=disp)) + geom_point(aes(colour=hp))
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"
predikat_list <- list(5, FALSE, "true", "4.0", "Cumlaude")
predikat_list
## [[1]]
## [1] 5
##
## [[2]]
## [1] FALSE
##
## [[3]]
## [1] "true"
##
## [[4]]
## [1] "4.0"
##
## [[5]]
## [1] "Cumlaude"
list dan vector memiliki perbedaan berdasarkan hasil output. list memiliki tipe data yang berbeda dalam satu struktur data (heterogen), sedangkan vector memiliki tipe data yang sama (homogen). elemen dari vector diapit oleh tanda (““) yang menunjukkan bahwa hasilnya merupakan string (karakter).
kelompok_kkn <- data.frame(
Nama = c("Nichole", "Arya", "Calista", "Syach","Noel","Ciara","Vio","Raisa","Victoria","Harry", "Yuka"),
NIM = c(2204030201, 2205040302, 2206050403, 2207060504, 2208070605, 2209080706, 2210090807, 2211100908, 2212111009, 2213121110, 2214131211),
Prodi = factor(c("Kesehatan Masyarakat", "Teknik Sipil", "Hukum", "Statistika", "Teknik Informatika","Sistem Informasi", "Komunikasi", "Geografi", "Teknik Elektro", "Psikologi", "PGSD"))
)
print(kelompok_kkn)
## Nama NIM Prodi
## 1 Nichole 2204030201 Kesehatan Masyarakat
## 2 Arya 2205040302 Teknik Sipil
## 3 Calista 2206050403 Hukum
## 4 Syach 2207060504 Statistika
## 5 Noel 2208070605 Teknik Informatika
## 6 Ciara 2209080706 Sistem Informasi
## 7 Vio 2210090807 Komunikasi
## 8 Raisa 2211100908 Geografi
## 9 Victoria 2212111009 Teknik Elektro
## 10 Harry 2213121110 Psikologi
## 11 Yuka 2214131211 PGSD
kelompok_kkn$Nama
## [1] "Nichole" "Arya" "Calista" "Syach" "Noel" "Ciara"
## [7] "Vio" "Raisa" "Victoria" "Harry" "Yuka"
kelompok_kkn[2, ]
## Nama NIM Prodi
## 2 Arya 2205040302 Teknik Sipil
kelompok_kkn[2, 1]
## [1] "Arya"
Perbedaan: $: digunakan untuk memanggil kolom berdasarkan nama. Hanya dapat memanggil satu kolom [row, coloumn]: digunakan untuk memanggil baris berdasarkan elemen baris dan kolom [row, ][ ,coloumn]: digunakan untuk memanggil seluruh baris atau kolom berdasarkan indeksnya
kelompok_kkn <- data.frame(
Nama = c("Nichole", "Arya", "Calista", "Syach", NA,"Ciara", NA, NA,"Victoria","Harry", NA),
NIM = c(2204030201, 2205040302, 2206050403, 2207060504, NA, 2209080706, NA, NA, 2212111009, 2213121110, NA),
Prodi = factor(c("Kesehatan Masyarakat", "Teknik Sipil", "Hukum", "Statistika", NA,"Sistem Informasi", NA, NA, "Teknik Elektro", "Psikologi", NA))
)
is.na(kelompok_kkn)
## Nama NIM Prodi
## [1,] FALSE FALSE FALSE
## [2,] FALSE FALSE FALSE
## [3,] FALSE FALSE FALSE
## [4,] FALSE FALSE FALSE
## [5,] TRUE TRUE TRUE
## [6,] FALSE FALSE FALSE
## [7,] TRUE TRUE TRUE
## [8,] TRUE TRUE TRUE
## [9,] FALSE FALSE FALSE
## [10,] FALSE FALSE FALSE
## [11,] TRUE TRUE TRUE
sum(is.na(kelompok_kkn))
## [1] 12