6 Impor & Pembersihan Data
Mengimpor file Scopus ke R dan membersihkan data sebelum analisis
- Mengimpor file CSV Scopus dengan
convert2df() - Memeriksa struktur dan kualitas data
- Menghapus duplikat (berdasarkan DOI dan judul)
- Menangani nilai yang hilang (missing values)
- Menyimpan data yang sudah bersih untuk analisis berikutnya
6.1 Setup: Load Library
Selalu mulai skrip dengan memuat semua paket yang diperlukan:
6.2 Impor Data dengan convert2df()
6.2.1 Sintaks Dasar
# Sintaks impor (referensi — jalankan di RStudio dengan file nyata)
# Untuk file CSV dari Scopus:
M <- convert2df(
file = "scopus_export.csv",
dbsource = "scopus",
format = "csv"
)
# Untuk file BibTeX dari Scopus:
M <- convert2df(
file = "scopus_export.bib",
dbsource = "scopus",
format = "bibtex"
)
# Untuk Web of Science (format ISI):
M <- convert2df(
file = "wos_export.txt",
dbsource = "wos",
format = "plaintext"
)6.2.2 Membuat Data Dummy untuk Praktik
Karena kita tidak bisa upload file langsung di browser, kita akan membuat data dummy yang merepresentasikan hasil ekspor Scopus yang realistis:
6.3 Pemeriksaan Data Awal (EDA)
Sebelum cleaning, selalu lakukan pengecekan awal:
6.4 Proses Pembersihan Data (Data Cleaning)
6.5 Diagram PRISMA — Alur Seleksi Dokumen
PRISMA (Preferred Reporting Items for Systematic reviews and Meta-Analyses) adalah standar pelaporan internasional yang juga digunakan dalam studi bibliometrika. Diagram ini wajib ada dalam laporan untuk mendokumentasikan berapa dokumen yang masuk dan keluar di setiap tahap.
Untuk membuat diagram PRISMA 2020 yang sesuai standar internasional secara interaktif dan mudah, Anda sangat disarankan untuk menggunakan PRISMA 2020 Shiny App gratis yang dikembangkan oleh Haddaway dkk. (2022).
🌐 Akses aplikasinya di sini: https://estech.shinyapps.io/prisma_flowdiagram/
Aplikasi ini memungkinkan Anda: 1. Memasukkan angka hasil seleksi literatur secara manual. 2. Mengkustomisasi gaya diagram. 3. Mendownload diagram akhirnya dalam resolusi tinggi (PDF, PNG, SVG) atau sebagai HTML interaktif.
Referensi: Haddaway, N. R., Page, M. J., Pritchard, C. C., & McGuinness, L. A. (2022). PRISMA2020: An R package and Shiny app for producing PRISMA 2020-compliant flow diagrams, with interactivity for optimised digital transparency and Open Synthesis. Campbell Systematic Reviews, 18, e1230. https://doi.org/10.1002/cl2.1230
Setelah menjalankan kode cleaning di Bagian 4, angka yang perlu dicatat untuk PRISMA adalah:
| Tahap | Variabel R | Keterangan |
|---|---|---|
| Total awal | nrow(M_raw) |
Sebelum cleaning apapun |
| Setelah hapus dup. DOI | before_step1 - step1_dihapus |
Setelah Langkah 1 |
| Setelah hapus dup. judul | nrow(M) setelah Langkah 2 |
Setelah Langkah 2 |
| Corpus final | nrow(M) |
Angka akhir untuk PRISMA |
6.6 Verifikasi Data Setelah Cleaning
6.7 Menyimpan Data Bersih
# Opsi 1: Simpan sebagai RDS (direkomendasikan)
saveRDS(M, "data_bersih_scopus.rds")
# Load kembali kapan saja:
M <- readRDS("data_bersih_scopus.rds")
# Opsi 2: Simpan sebagai CSV
write.csv(M, "data_bersih_scopus.csv",
row.names = FALSE, fileEncoding = "UTF-8")💡 RDS lebih disarankan karena: - Mempertahankan class bibliometrixDB - Lebih cepat dimuat - Ukuran file lebih kecil
6.8 Skrip Cleaning Lengkap (Template Siap Pakai)
# ============================================================
# IMPORT & CLEANING DATA SCOPUS
# ============================================================
library(bibliometrix)
library(dplyr)
# ─── KONFIGURASI ────────────────────────────────────────────
FILE_SCOPUS <- "scopus_export.csv" # Nama file CSV Anda
DBSOURCE <- "scopus" # "scopus", "wos", "dimensions"
FORMAT <- "csv" # "csv", "bibtex", "plaintext"
# ─── 1. IMPOR ────────────────────────────────────────────────
M <- convert2df(FILE_SCOPUS, dbsource = DBSOURCE, format = FORMAT)
# Dokumen dimuat: nrow(M)
# ─── 2. CLEANING ─────────────────────────────────────────────
M <- as.data.frame(M)
n_awal <- nrow(M)
# Hapus duplikat DOI
M$DI_clean <- tolower(trimws(M$DI))
M <- M[!(duplicated(M$DI_clean, fromLast = FALSE) &
!is.na(M$DI_clean) & M$DI_clean != ""), ]
M$DI_clean <- NULL
# Hapus duplikat Judul
M$TI_clean <- tolower(trimws(M$TI))
M <- M[!duplicated(M$TI_clean), ]
M$TI_clean <- NULL
# Handle missing values
M$AU[is.na(M$AU) | trimws(M$AU) == ""] <- "UNKNOWN"
if ("PY" %in% names(M)) M$PY[is.na(M$PY)] <- 2026
if ("TC" %in% names(M)) M$TC[is.na(M$TC)] <- 0
class(M) <- c("bibliometrixDB", "data.frame")
# Total dokumen final: nrow(M)
# ─── 3. SIMPAN ───────────────────────────────────────────────
saveRDS(M, "data_bersih.rds")
# Data disimpan ke: data_bersih.rds