R - File Biner

File biner adalah file yang berisi informasi yang disimpan hanya dalam bentuk bit dan byte. (0 dan 1). Mereka tidak dapat dibaca manusia karena byte di dalamnya diterjemahkan ke karakter dan simbol yang berisi banyak karakter lain yang tidak dapat dicetak. Mencoba membaca file biner menggunakan editor teks apa pun akan menampilkan karakter seperti Ø dan ð.

File biner harus dibaca oleh program tertentu agar dapat digunakan. Misalnya, file biner dari program Microsoft Word dapat dibaca menjadi bentuk yang hanya dapat dibaca oleh program Word. Yang menunjukkan bahwa, selain teks yang dapat dibaca manusia, terdapat lebih banyak informasi seperti pemformatan karakter dan nomor halaman, dll., Yang juga disimpan bersama dengan karakter alfanumerik. Dan akhirnya file biner adalah urutan byte yang kontinu. Jeda baris yang kita lihat di file teks adalah karakter yang menggabungkan baris pertama ke baris berikutnya.

Terkadang, data yang dihasilkan oleh program lain harus diproses oleh R sebagai file biner. Juga R diperlukan untuk membuat file biner yang dapat dibagikan dengan program lain.

R memiliki dua fungsi WriteBin() dan readBin() untuk membuat dan membaca file biner.

Sintaksis

writeBin(object, con)
readBin(con, what, n )

Berikut ini adalah deskripsi parameter yang digunakan -

  • con adalah objek koneksi untuk membaca atau menulis file biner.

  • object adalah file biner yang akan ditulis.

  • what adalah mode seperti karakter, integer dll. mewakili byte yang akan dibaca.

  • n adalah jumlah byte untuk dibaca dari file biner.

Contoh

Kami menganggap data inbuilt R "mtcars". Pertama kita membuat file csv darinya dan mengubahnya menjadi file biner dan menyimpannya sebagai file OS. Selanjutnya kita membaca file biner yang dibuat menjadi R.

Menulis File Biner

Kami membaca bingkai data "mtcars" sebagai file csv dan kemudian menulisnya sebagai file biner ke OS.

# Read the "mtcars" data frame as a csv file and store only the columns 
   "cyl", "am" and "gear".
write.table(mtcars, file = "mtcars.csv",row.names = FALSE, na = "", 
   col.names = TRUE, sep = ",")

# Store 5 records from the csv file as a new data frame.
new.mtcars <- read.table("mtcars.csv",sep = ",",header = TRUE,nrows = 5)

# Create a connection object to write the binary file using mode "wb".
write.filename = file("/web/com/binmtcars.dat", "wb")

# Write the column names of the data frame to the connection object.
writeBin(colnames(new.mtcars), write.filename)

# Write the records in each of the column to the file.
writeBin(c(new.mtcars$cyl,new.mtcars$am,new.mtcars$gear), write.filename)

# Close the file for writing so that it can be read by other program.
close(write.filename)

Membaca File Biner

File biner yang dibuat di atas menyimpan semua data sebagai byte berkelanjutan. Jadi kita akan membacanya dengan memilih nilai yang sesuai dari nama kolom serta nilai kolom.

# Create a connection object to read the file in binary mode using "rb".
read.filename <- file("/web/com/binmtcars.dat", "rb")

# First read the column names. n = 3 as we have 3 columns.
column.names <- readBin(read.filename, character(),  n = 3)

# Next read the column values. n = 18 as we have 3 column names and 15 values.
read.filename <- file("/web/com/binmtcars.dat", "rb")
bindata <- readBin(read.filename, integer(),  n = 18)

# Print the data.
print(bindata)

# Read the values from 4th byte to 8th byte which represents "cyl".
cyldata = bindata[4:8]
print(cyldata)

# Read the values form 9th byte to 13th byte which represents "am".
amdata = bindata[9:13]
print(amdata)

# Read the values form 9th byte to 13th byte which represents "gear".
geardata = bindata[14:18]
print(geardata)

# Combine all the read values to a dat frame.
finaldata = cbind(cyldata, amdata, geardata)
colnames(finaldata) = column.names
print(finaldata)

Ketika kami mengeksekusi kode di atas, ini menghasilkan hasil dan grafik berikut -

[1]    7108963 1728081249    7496037          6          6          4
 [7]          6          8          1          1          1          0
[13]          0          4          4          4          3          3

[1] 6 6 4 6 8

[1] 1 1 1 0 0

[1] 4 4 4 3 3

     cyl am gear
[1,]   6  1    4
[2,]   6  1    4
[3,]   4  1    4
[4,]   6  0    3
[5,]   8  0    3

Seperti yang bisa kita lihat, kita mendapatkan kembali data asli dengan membaca file biner di R.