Silakan tulis artikel dalam bahasa Indonesia dengan panjang lebih dari 1000 kata:
Membuat Plot Q-Q untuk Data Kimia dengan Bilangan Variabel dan Observasi yang Tidak Dikenal
Dalam analisis data kimia, plot Q-Q (Quantile-Quantile) adalah salah satu cara untuk memvisualkan distribusi variabel. Namun, dalam beberapa kasus, kita mungkin memiliki data dengan bilangan variabel dan observasi yang tidak diketahui sebelumnya. Dalam hal ini, kita perlu membuat script yang dapat menghasilkan plot Q-Q untuk setiap variabel secara terpisah.
Pertama-tama, kita akan membuat data frame (df) dari data kimia yang telah diimport dari Excel. Data df memiliki tiga variabel, yaitu As, Ba, dan Cu, dengan bilangan observasi yang berbeda untuk setiap variabel.
As <- c(10, 20, 10, 12, 7, 14, 6, 9, 11, 15)
Ba <- c(110, 120, 210, 112, 97, 214, 116, 211, 115, NA)
Cu <- c(1, 1, 2, 11, 9, 21, 16, 19, NA, NA )
df <- data.frame(As, Ba, Cu)
Kemudian, kita akan menggunakan fungsi pivot_longer
dari library tidyr
untuk membagi variabel menjadi dua kolom, yaitu name
dan value
.
library(tidyverse)
df_l <- pivot_longer(df, cols = everything())
Selanjutnya, kita akan membuat plot Q-Q menggunakan fungsi ggplot2
. Kita akan menggunakan sintaks yang sama untuk semua variabel, sehingga kita dapat memvisualkan distribusi setiap variabel secara terpisah.
qqplot <- ggplot(data = df_l, mapping = aes(sample = value)) +
stat_qq_band(alpha=0.5) +
stat_qq_line() +
stat_qq_point() +
facet_wrap(~ name, scales = "free") +
labs(x = "Theoretical Quantiles", y = "Sample Quantiles")
qqplot
Namun, dalam beberapa kasus, kita mungkin memiliki lebih dari tiga variabel. Dalam hal ini, kita perlu membuat script yang dapat menghasilkan plot Q-Q untuk setiap variabel secara terpisah dan memungkinkan kita untuk menyimpan plot tersebut sebagai objek yang dapat diakses kemudian.
Salah satu cara untuk melakukan hal itu adalah dengan menggunakan loop for
dan fungsi ggplot
. Kita akan membuat script yang dapat menghasilkan plot Q-Q untuk setiap variabel dan menyimpan plot tersebut sebagai objek yang berformat qqplot1
, qqplot2
, dst.
plots <- list()
for (i in 1:ncol(df[, 1:ncol(df) - 0 ])){
temp_df <- df_l %>% filter(name == names(df)[i])
plot_temp <- ggplot(data = temp_df, mapping = aes(sample = value)) +
stat_qq_band(alpha=0.5) +
stat_qq_line() +
stat_qq_point() +
labs(x = "Theoretical Quantiles", y = "Sample Quantiles")
plots[[paste0("qqplot", i)]] <- plot_temp
}
# Contoh penggunaan objek plot Q-Q:
print(plots[[1]])
Dalam script di atas, kita menggunakan loop for
untuk menghasilkan plot Q-Q untuk setiap variabel. Kita juga menggunakan fungsi filter
untuk membagi data menjadi bagian yang sesuai dengan variabel yang ingin dipplot. Setiap plot Q-Q kemudian disimpan sebagai objek yang berformat qqplot1
, qqplot2
, dst, sehingga kita dapat memvisualkan distribusi setiap variabel secara terpisah dan memungkinkan kita untuk menyimpan plot tersebut sebagai bagian dari laporan HTML atau PDF.
Namun, jika Anda memiliki lebih dari 20-50 variabel, maka Anda perlu menggunakan cara lain untuk menghasilkan plot Q-Q. Salah satu cara adalah dengan menggunakan fungsi purrr
untuk membuat loop yang dapat menghasilkan plot Q-Q untuk setiap variabel secara terpisah. Contoh scriptnya sebagai berikut:
library(purrr)
plots <- map(1:ncol(df[, 1:ncol(df) - 0 ]), function(i){
temp_df <- df_l %>% filter(name == names(df)[i])
ggplot(data = temp_df, mapping = aes(sample = value)) +
stat_qq_band(alpha=0.5) +
stat_qq_line() +
stat_qq_point() +
labs(x = "Theoretical Quantiles", y = "Sample Quantiles")
}) -> plots
# Contoh penggunaan objek plot Q-Q:
print(plots[[1]])
Dalam script di atas, kita menggunakan fungsi map
dari library purrr
untuk membuat loop yang dapat menghasilkan plot Q-Q untuk setiap variabel secara terpisah. Setiap plot Q-Q kemudian disimpan sebagai objek yang berformat qqplot1
, qqplot2
, dst, sehingga kita dapat memvisualkan distribusi setiap variabel secara terpisah dan memungkinkan kita untuk menyimpan plot tersebut sebagai bagian dari laporan HTML atau PDF.
Dalam beberapa kasus, Anda mungkin memiliki lebih dari 20-50 variabel, maka Anda perlu menggunakan cara lain untuk menghasilkan plot Q-Q. Salah satu cara adalah dengan menggunakan fungsi future
untuk membuat script yang dapat dijalankan secara paralel dan menghasilkan plot Q-Q untuk setiap variabel secara terpisah.
Dalam artikel ini, kita telah membahas tentang bagaimana membuat plot Q-Q untuk data kimia dengan bilangan variabel dan observasi yang tidak diketahui sebelumnya. Kita juga telah membahas tentang cara-cara untuk menghasilkan plot Q-Q secara efektif dan efisien.