Fundamental Series — Part 12 of 20
Sebelum analisis, data harus di-load ke R. Part ini membahas cara import berbagai format file dan export hasilnya.
CSV
library(readr)
# Import
df <- read_csv("data/input.csv")
# Import dengan opsi
df <- read_csv("data/input.csv",
col_types = cols(id = col_integer(), nilai = col_double()),
skip = 1, # skip baris pertama
na = c("", "NA", ".") # nilai yang dianggap NA
)
# Export
write_csv(df, "data/output.csv")
Tip
readr vs base
read_csv() (readr) lebih cepat dan otomatis mendeteksi tipe kolom. read.csv() (base R) juga bisa, tapi default-nya berbeda (misal: string jadi factor).
Excel
library(readxl)
# Import
df <- read_excel("data/input.xlsx")
df <- read_excel("data/input.xlsx", sheet = "Sheet2")
df <- read_excel("data/input.xlsx", range = "A1:D100")
# Lihat nama sheet
excel_sheets("data/input.xlsx")
# Export (perlu package writexl atau openxlsx)
library(writexl)
write_xlsx(df, "data/output.xlsx")Stata, SPSS, SAS — haven
library(haven)
# Stata
df <- read_dta("data/input.dta")
write_dta(df, "data/output.dta")
# SPSS
df <- read_sav("data/input.sav")
write_sav(df, "data/output.sav")
# SAS
df <- read_sas("data/input.sas7bdat")RDS & RData — Format Native R
# RDS — simpan satu objek
saveRDS(df, "data/output.rds")
df <- readRDS("data/output.rds")
# RData — simpan beberapa objek sekaligus
save(df1, df2, model, file = "data/workspace.RData")
load("data/workspace.RData")
CatatanKapan Pakai RDS?
RDS menyimpan tipe data R secara sempurna (factor, list, dll). Ideal untuk intermediate data — sudah dibersihkan, siap analisis.
JSON & Parquet
# JSON
library(jsonlite)
data <- fromJSON("data/input.json")
write_json(data, "data/output.json")
# Parquet (format columnar, sangat efisien)
library(arrow)
df <- read_parquet("data/input.parquet")
write_parquet(df, "data/output.parquet")Clipboard & URL
# Dari clipboard (copy-paste dari Excel)
df <- read.delim("clipboard")
# Dari URL
df <- read_csv("https://example.com/data.csv")Latihan
BahayaLatihan 12.1
# 1. Buat dataframe:
df <- data.frame(
nama = c("Andi", "Budi", "Citra"),
nilai = c(85, 90, 78),
lulus = c(TRUE, TRUE, FALSE)
)
# 2. Simpan sebagai CSV, lalu baca kembali
# 3. Simpan sebagai RDS, lalu baca kembali
# 4. Bandingkan class() kolom "lulus" dari CSV vs RDSRingkasan
| Format | Import | Export |
|---|---|---|
| CSV | readr::read_csv() |
readr::write_csv() |
| Excel | readxl::read_excel() |
writexl::write_xlsx() |
| Stata | haven::read_dta() |
haven::write_dta() |
| SPSS | haven::read_sav() |
haven::write_sav() |
| RDS | readRDS() |
saveRDS() |
| JSON | jsonlite::fromJSON() |
jsonlite::write_json() |
| Parquet | arrow::read_parquet() |
arrow::write_parquet() |
Sebelumnya: Part 11 — Package & Library Selanjutnya: Part 13 — Manipulasi Data I: Filter & Select