Trabajar con archivos binarios en la programación R

En el mundo de la informática, los archivos de texto contienen datos que los humanos pueden entender fácilmente. Incluye letras, números y otros caracteres. Por otro lado, los archivos binarios contienen 1 y 0 que solo las computadoras pueden interpretar. Los humanos no pueden leer la información almacenada en un archivo binario, ya que los bytes que contiene se traducen en caracteres y símbolos que contienen otros caracteres no imprimibles.
Puede suceder algunas veces cuando los datos producidos por otros programas son esenciales para ser procesados ​​por el lenguaje R como un archivo binario. Además, R es necesariamente responsable de crear archivos binarios que se pueden compartir con otros programas. Las cuatro operaciones más importantes que se pueden realizar en un archivo binario son: 
 

  • Crear y escribir en un archivo binario
  • Lectura del archivo binario
  • Agregar al archivo binario
  • Eliminando el archivo binario

Crear y escribir en un archivo binario

Tanto la creación como la escritura en un archivo binario se pueden realizar con una sola función writeBin() al abrir el archivo en modo » wb «, donde w indica escritura y b indica modo binario.
 

Sintaxis: writeBin(objeto, con)
Parámetros:  
objeto: un objeto R que se escribirá en la conexión 
con: un objeto de conexión o una string de caracteres que nombra un archivo o un vector sin formato. 
 

Ejemplo: 
 

Python3

# R program to illustrate
# working with binary file
 
# Creating a data frame
df = data.frame(
  "ID" = c(1, 2, 3, 4),
  "Name" = c("Tony", "Thor", "Loki", "Hulk"),
  "Age" = c(20, 34, 24, 40),
  "Pin" = c(756083, 756001, 751003, 110011)
)
 
# Creating a connection object
# to write the binary file using mode "wb"
con = file("myfile.dat", "wb")
 
# Write the column names of the data frame
# to the connection object
writeBin(colnames(df), con)
 
# Write the records in each of the columns to the file
writeBin(c(df$ID, df$Name, df$Age, df$Pin), con)
 
# Close the connection object
close(con)

Producción: 
 

Lectura del archivo binario

La lectura del archivo binario se puede realizar mediante la función readBin() al abrir el archivo en modo “ rb ”, donde r indica lectura yb indica modo binario.
 

Sintaxis: readBin(con, what, n )
Parámetros:  
con: un objeto de conexión o una string de caracteres que nombra un archivo o un vector sin  formato
what: un objeto cuyo modo dará el modo del vector a leer o un vector de caracteres de longitud uno que describe el modo: uno de “numérico”, “doble”, “entero”, “int”, “lógico”, “complejo”, “carácter”, “sin procesar” 
n: el número (máximo) de registros a ser leer 
 

Ejemplo: 
 

Python3

# R program to illustrate
# working with binary file
 
# Creating a connection object
# to read the file in binary mode using "rb".
con = file("myfile.dat", "rb")
 
# Read the column names
# n = 4 as here 4 column
colname = readBin(con, character(),  n = 4)
 
# Read column values
# n = 20 as here 16 values and 4 column names
con = file("myfile.dat", "rb")
bindata = readBin(con, integer(), n = 20)
 
# Read the ID values
# as first 1:4 byte for col name
# then values of ID col is within 5 to 8
ID = bindata[5:8]
 
# Similarly 9 to 12 byte for values of name column
Name = bindata[9:12]
 
# 13 to 16 byte for values of the age column
Age = bindata[13:16]
 
# 17 to 20 byte for values of Pincode column
PinCode = bindata[17:20]
 
# Combining all the values and make it a data frame
finaldata = cbind(ID, Name, Age, PinCode)
colnames(finaldata)= colname
print(finaldata)

Producción: 
 

             ID       Name        Age        Pin
[1, ]          0          0          0          0
[2, ] 1072693248 1074266112 1074790400 1073741824
[3, ]          0          0          0          0
[4, ] 1073741824 1074790400 1074266112 1072693248

Agregar al archivo binario

Agregar al archivo binario se puede realizar con la misma función writeBin() al abrir el archivo en modo » ab «, donde a indica agregar y b indica modo binario.
Ejemplo: 
 

Python3

# R program to illustrate
# working with binary file
 
# Creating another data frame
# to append with the existing data frame
df = data.frame(
  "Salary" = c(100, 200, 300, 400),
  "Experience" = c(3, 5, 10, 4)
)
 
# Creating a connection object
# to append the binary file using mode "ab"
con = file("myfile.dat", "ab")
 
# append the column names of the data frame
# to the connection object
writeBin(colnames(df), con)
 
# append the records in each of the columns to the file
writeBin(df$Salary, con)
 
# Close the connection object
close(con)

Producción: 
 

Eliminar el archivo binario

En R, se puede eliminar el archivo binario usando el comando file.remove() y luego desvincular el archivo eliminado usando la función unlink() .
Ejemplo: 
 

Python3

# R program to illustrate
# working with binary file
 
# Define the file name that will be deleted
fileName <- "myfile.dat"
 
# Check its existence
if (file.exists(fileName))
  # Delete file if it exists
  file.remove(fileName)
 
# Unlink the deleted file
unlink(fileName, recursive = TRUE)

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *