Binarios del lenguaje R
Un archivo binario es un archivo que contiene información (0 y 1) almacenada solo en forma de bits y bytes. El archivo binario no es legible porque los bytes que contiene se convierten en caracteres y símbolos que contienen muchos otros caracteres no imprimibles. Si intenta leer el archivo binario usando cualquier editor de texto, se mostrarán caracteres como "..." y "...".
Los archivos binarios deben ser leídos por un programa específico para poder ser utilizados. Por ejemplo, los archivos binarios del programa Microsoft Word sólo pueden leerse en formato legible por humanos mediante el programa Word. Esto muestra que además del texto legible por humanos, hay más información, como caracteres de formato y números de página, que también se almacenan junto con los caracteres alfanuméricos. Finalmente, un archivo binario es una secuencia contigua de bytes. Las nuevas líneas que vemos en los archivos de texto son los caracteres que conectan la primera línea con la siguiente.
A veces, R necesita procesar datos generados por otros programas en forma de archivos binarios. Además, se requiere que R cree binarios para poder disfrutarlo con otros programas.
R tiene dos funciones para crear y leer archivos binarios: las funciones WriteBin() y readBin().
Sintaxis
writeBin(object,con)readBin(con,what,n)
R
La siguiente es una descripción de el parámetro utilizado -
con- es el objeto de conexión desde el cual se leerá o escribirá el archivo binario.
objeto- es el archivo binario que se va a escribir.
qué- es un patrón de caracteres, números enteros, etc., que representan los bytes que se van a leer.
n- es el número de bytes a leer del archivo binario.
Ejemplo
Considere a continuación el uso de los datos integrados de R "mtcars". Primero, creamos un archivo csv a partir de él, luego lo convertimos en un archivo binario y lo almacenamos como un archivo del sistema operativo.
1. Escribir en un archivo binario
Leemos el marco de datos "mtcars" en forma de archivo csv y luego lo escribimos en el sistema operativo en forma de archivo binario. . Consulte el siguiente código para implementar:
# Lea el marco de datos "mtcars" en un archivo csv y almacene solo las columnas "cyl", "am" y "gear". write.table(mtcars,file="mtcars.csv", row.names=FALSE,na="",col.names=TRUE,sep=",")# Almacene los 5 registros en el archivo csv como datos nuevos marco. new.mtcars<-read.table("mtcars.csv",",head=",",",",",",",")#Almacene los 5 registros en el archivo csv como un nuevo marco de datos. write.filename=file("/web/com/binmtcars.dat" write.filename=file("/web/com/binmtcars.dat", "wb")# Escriba el nombre de la columna del marco de datos en el objeto de conexión writeBin (colnames(new.mtcars),write.filename)# Escribe los registros de cada columna en el archivo.writeBin(c(new.mtcars$cyl,new.mtcars$am,new.mtcars$gear),write. nombre de archivo)# Cierra el archivo escrito para que otros programas puedan leerlo close(write.filename)
Leer archivo binario
El archivo binario creado anteriormente almacena todos los datos. como sección de palabras consecutivas, entonces lo leeremos seleccionando los valores apropiados para los nombres de las columnas y los valores de las columnas.
# Cree un objeto de conexión, use "rb".read.filename<-file("/web/com/binmtcars.dat", "rb")# Primero lea el nombre de la columna. n = 3 porque tenemos 3 columnas. n = 18 porque tenemos 3 nombres de columnas y 15 valores de columnas.read.filename<-file("/web/com/binmtcars.dat", "rb")bindata<-readBin(read.filename,integer(),n =18)# Imprimir datos.print(imprimir(datos))# Imprimir datos. print(print(data))# Imprimir datos.print(bindata)# Leer el valor del 4º byte al 8º byte, que significa "cyl".cyldata=bindata[4:8]print(cyldata)# Leer el valor del noveno byte al 13, que representa "am".amdata=bindata[9:13]print(amdata)# Lea los bytes del 9 al 13 que representan "gear" El valor del byte. finaldata=cbind(cyldata,amdata,geardata)colnames(finaldata)=column.namesprint(finaldata)
R
Cuando ejecutamos el código anterior, se obtendrán los siguientes resultados y gráficos. producido -
[1] 7108963 1728081249 7496037 6 6 4 [7] 6 8 1 1 1 0 [13] 0 4 4 3 3 [1] 6 6 4 6 8 [1] 1 1 1 0 0 [ 1] 4 4 4 3 3 engranaje del cilindro[1,] 6 1 4 [2,] 6 1 4 [3,] 4 1 4 [4,] 6 0 3 [5,] 8 0 3
Shell
Podemos ver que al leer el archivo binario en R, obtenemos los datos sin procesar.