File System I/O
File System I/O digunakan untuk membaca dan menulis file. Di R, file yang sering digunakan dalam praktikum adalah TXT, CSV, dan Excel.
Path File
Path adalah alamat lokasi file. Jika file berada di folder kerja yang sama, kita cukup menulis nama filenya.
print(getwd())
Penjelasan:
getwd()menampilkan working directory yang sedang digunakan R.
Untuk mengganti working directory, gunakan setwd().
setwd("D:/praktikum")
Membaca File TXT
isi_file <- readLines("catatan.txt")
print(isi_file)
Penjelasan:
readLines()membaca file teks per baris dan menyimpannya sebagai vector character.
Menulis File TXT
catatan <- c("Belajar R", "Belajar data analysis")
writeLines(catatan, "catatan.txt")
Penjelasan:
writeLines()menulis vector teks ke file.
Membaca File CSV
data <- read.csv("nilai.csv")
print(data)
Penjelasan:
read.csv()membaca file CSV dan menghasilkan data frame.
Menulis File CSV
data <- data.frame(
nama = c("Budi", "Ani", "Citra"),
nilai = c(80, 90, 75)
)
write.csv(data, "hasil_nilai.csv", row.names = FALSE)
Penjelasan:
row.names = FALSEdigunakan agar nomor baris tidak ikut disimpan sebagai kolom baru.
Membaca Excel
Untuk membaca Excel, kita bisa menggunakan package readxl.
install.packages("readxl")
library(readxl)
data <- read_excel("nilai.xlsx")
print(data)
Penjelasan:
read_excel()membaca file.xlsxmenjadi data frame atau tibble.
Menulis File Excel
Untuk menulis Excel, kita bisa menggunakan package writexl.
install.packages("writexl")
library(writexl)
data <- data.frame(
nama = c("Budi", "Ani", "Citra"),
nilai = c(80, 90, 75)
)
write_xlsx(data, "hasil_nilai.xlsx")
Mengolah Kolom X1 sampai X5 dari CSV
Misalnya file CSV memiliki kolom x1 sampai x5. Kita bisa menghitung xbar dan R seperti berikut.
data <- read.csv("data_pengukuran.csv")
kolom_x <- data[, c("x1", "x2", "x3", "x4", "x5")]
data$xbar <- rowMeans(kolom_x)
data$R <- apply(kolom_x, 1, max) - apply(kolom_x, 1, min)
print(data)
Penjelasan:
rowMeans()menghitung rata-rata per baris, sedangkanapply(..., 1, ...)menjalankan fungsi untuk setiap baris.
Membuat Folder Output
if (!dir.exists("output")) {
dir.create("output")
}
write.csv(data, "output/hasil.csv", row.names = FALSE)
Penjelasan:
dir.exists()mengecek apakah folder sudah ada, sedangkandir.create()membuat folder baru.
Error yang Sering Terjadi
- File tidak ditemukan karena working directory berbeda.
- Nama file salah ketik.
- CSV menggunakan pemisah
;, tetapi dibaca denganread.csv(). - Package Excel belum di-install atau belum dipanggil dengan
library().
Latihan Singkat
Coba buat program sederhana dengan ketentuan berikut:
- Buat data frame berisi nama dan nilai.
- Simpan data frame ke file CSV.
- Baca kembali file CSV tersebut.
- Tambahkan kolom status kelulusan.
- Simpan hasil akhir ke folder
output.