nilai_raw <- data.frame(Nama = c("Andi", "Budi", "Citra", "Dewi", "Andi"),
Matematika = c(80, 90, NA, 75, 80),
Statistika = c(85, 88, 78,"-", 85),
Umur = c(21, 20, 22, 21, 21),
stringsAsFactors = FALSE)
nilai_raw## Nama Matematika Statistika Umur
## 1 Andi 80 85 21
## 2 Budi 90 88 20
## 3 Citra NA 78 22
## 4 Dewi 75 - 21
## 5 Andi 80 85 21
## Nama Matematika Statistika Umur Status_Umur
## 1 Andi 80 85 21 Dewasa
## 2 Budi 90 88 20 Muda
## 3 Citra NA 78 22 Dewasa
## 4 Dewi 75 84 21 Dewasa
## 5 Andi 80 85 21 Dewasa
## Nama Matematika Statistika Umur Status_Umur
## 1 Andi 80 85 21 Dewasa
## 2 Budi 90 88 20 Muda
## 3 Citra NA 78 22 Dewasa
## 4 Dewi 75 84 21 Dewasa
profil = data.frame(No = 1:10,
Gender = c("f","f","f","m","m","f","m","m","f","m"),
v1= c(8,15,8,14,8,10,9,9,10,12),
v2= c(9,8,13,9,2,6,9,10,13,10),
v3= c(5,9,12,8,9,10,7,8,6,9),
v4= c(9,5,6,"NA",16,9,13,10,7,8),
v5= c(9,10,7,11,8,10,9,5,10,17),
v6= c(9,8,9,10,10,10,12,10,12,7),
v7= c(5,10,14,6,8,9,10,6,13,9),
v8= c(9,12,12,11,9,7,9,12,9,10),
v9= c(11,9,12,11,8,7,11,6,6,7),
v10= c(8,15,9,8,9,11,7,8,9,7),
stringsAsFactors = FALSE)
profil## No Gender v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
## 1 1 f 8 9 5 9 9 9 5 9 11 8
## 2 2 f 15 8 9 5 10 8 10 12 9 15
## 3 3 f 8 13 12 6 7 9 14 12 12 9
## 4 4 m 14 9 8 NA 11 10 6 11 11 8
## 5 5 m 8 2 9 16 8 10 8 9 8 9
## 6 6 f 10 6 10 9 10 10 9 7 7 11
## 7 7 m 9 9 7 13 9 12 10 9 11 7
## 8 8 m 9 10 8 10 5 10 6 12 6 8
## 9 9 f 10 13 6 7 10 12 13 9 6 9
## 10 10 m 12 10 9 8 17 7 9 10 7 7
##
## 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
## No Gender v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
## 1 8 m 9 10 8 10 5 10 6 12 6 8
## 2 5 m 8 2 9 16 8 10 8 9 8 9
## 3 7 m 9 9 7 13 9 12 10 9 11 7
## 4 4 m 14 9 8 NA 11 10 6 11 11 8
## 5 10 m 12 10 9 8 17 7 9 10 7 7
## 6 3 f 8 13 12 6 7 9 14 12 12 9
## 7 1 f 8 9 5 9 9 9 5 9 11 8
## 8 2 f 15 8 9 5 10 8 10 12 9 15
## 9 6 f 10 6 10 9 10 10 9 7 7 11
## 10 9 f 10 13 6 7 10 12 13 9 6 9
## [1] "C:/PRAKTIKUM PEMROGRAMAN"
df_sales <- data.frame(
id_toko = c("T1", "T2", "T3"),
Minggu1 = c(120, 150, 95),
Minggu2 = c(135, 140, 110)
)
df_info <- data.frame(
id = c("T1", "T2", "T4"),
Kota = c("Jakarta", "Bandung", "Surabaya")
)
df_merged <- merge(
df_sales,
df_info,
by.x = "id_toko",
by.y = "id",
all = TRUE
)
df_merged## id_toko Minggu1 Minggu2 Kota
## 1 T1 120 135 Jakarta
## 2 T2 150 140 Bandung
## 3 T3 95 110 <NA>
## 4 T4 NA NA Surabaya
df_long <- reshape(
df_merged,
varying = c("Minggu1", "Minggu2"),
v.names = "Penjualan",
timevar = "Waktu",
times = c("Minggu1", "Minggu2"),
direction = "long")
df_long## id_toko Kota Waktu Penjualan id
## 1.Minggu1 T1 Jakarta Minggu1 120 1
## 2.Minggu1 T2 Bandung Minggu1 150 2
## 3.Minggu1 T3 <NA> Minggu1 95 3
## 4.Minggu1 T4 Surabaya Minggu1 NA 4
## 1.Minggu2 T1 Jakarta Minggu2 135 1
## 2.Minggu2 T2 Bandung Minggu2 140 2
## 3.Minggu2 T3 <NA> Minggu2 110 3
## 4.Minggu2 T4 Surabaya Minggu2 NA 4
## [1] "C:/PRAKTIKUM PEMROGRAMAN"
par(mfrow = c(2, 2))
# Grafik 1: Scatter Plot conc vs uptake
plot(CO2$conc, CO2$uptake, main = "Scatter Plot: conc vs uptake",
xlab = "Konsentrasi CO2", ylab = "Uptake", col = "darkblue", pch = 16)
# Grafik 2: Boxplot uptake berdasarkan Type
boxplot(uptake ~ Type, data = CO2, main = "Boxplot: uptake berdasarkan Type",
xlab = "Tipe Tanaman", ylab = "Uptake", col = c("orange", "lightgreen"))
# Grafik 3: Boxplot uptake berdasarkan Treatment
boxplot(uptake ~ Treatment, data = CO2, main = "Boxplot: uptake berdasarkan Treatment",
xlab = "Perlakuan Suhu", ylab = "Uptake", col = c("lightblue", "pink"))
# Grafik 4: Histogram Distribusi uptake
hist(CO2$uptake, main = "Histogram: Distribusi Uptake",
xlab = "Uptake", col = "purple", border = "white")library(ggplot2)
qplot(x = conc, y = uptake, data = CO2, color = Treatment,
geom = c("point", "smooth"),
main = "Visualisasi Cepat dengan qplot()")## Warning: `qplot()` was deprecated in ggplot2 3.4.0.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
# Visualisasi Ulang dengan ggplot2 (Pemetaan Treatment dan Type)
p_base <- ggplot(CO2, aes(x = conc, y = uptake, color = Treatment, shape = Type)) +
geom_point(size = 3, alpha = 0.8) +
geom_smooth(method = "loess", se = FALSE)
p_base## `geom_smooth()` using formula = 'y ~ x'
library(ggplot2)
# Visualisasi Cepat dengan qplot()
qplot(x = conc, y = uptake, data = CO2, color = Treatment,
geom = c("point", "smooth"),
main = "Visualisasi Cepat dengan qplot()")## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
# Visualisasi Ulang dengan ggplot2 (Pemetaan Treatment dan Type)
p_base <- ggplot(CO2, aes(x = conc, y = uptake, color = Treatment, shape = Type)) +
geom_point(size = 3, alpha = 0.8) +
geom_smooth(method = "loess", se = FALSE)
p_base## `geom_smooth()` using formula = 'y ~ x'
# Pengembangan grafik lengkap
p_final <- ggplot(CO2, aes(x = conc, y = uptake, color = Treatment, shape = Type)) +
geom_point(size = 2.5, alpha = 0.7) +
# 1. stat_* : Menambahkan garis tren rata-rata smoothing
stat_smooth(method = "loess", se = TRUE, size = 1) +
# 2. scale_* : Menyesuaikan skala warna dan simbol
scale_color_manual(values = c("nonchilled" = "#D95F02", "chilled" = "#7570B3")) +
scale_shape_manual(values = c("Quebec" = 16, "Mississippi" = 17)) +
scale_x_continuous(breaks = seq(0, 1000, by = 200)) +
# 3. coord_* : Membatasi rentang koordinat sumbu
coord_cartesian(xlim = c(80, 1000), ylim = c(5, 50)) +
# 4. labs() : Menambahkan judul, subtitle, dan label
labs(
title = "Eksplorasi Penyerapan CO2 Pada Tanaman Gras",
subtitle = "Dampak Konsentrasi CO2, Asal Tipe Tanaman, dan Perlakuan Suhu",
x = expression(paste("Konsentrasi ", CO[2], " (", mu, "L/L)")),
y = expression(paste("Tingkat Penyerapan/Uptake (", mu, "mol/", m^2, " sec)")),
color = "Perlakuan",
shape = "Asal Tipe",
caption = "Sumber Data: R Built-in Dataset CO2"
) +
# 5. theme() : Menggunakan tema siap pakai + kustomisasi tampilan
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", size = 14, hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5, color = "gray30"),
legend.position = "top",
panel.grid.minor = element_blank()
)## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using formula = 'y ~ x'
# Menyimpan grafik akhir menggunakan ggsave()
ggsave(
filename = "co2_uptake_visualisasi.png",
plot = p_final,
width = 8,
height = 6,
dpi = 300
)## `geom_smooth()` using formula = 'y ~ x'