二进制文件是一个文件,其中包含仅以位和字节形式存储的信息(0和1)。它们不可读,因为其中的字节转换为包含许多其他不可打印字符的字符和符号。尝试使用任何文本编辑器读取二进制文件将显示像Ø和ð这样的字符。
二进制文件必须由特定程序读取才能使用。例如,Microsoft Word程序的二进制文件只能通过Word程序读取到我们可读的形式。这表明,除了我们可读的文本之外,还有更多的信息,如格式化的字符和页码等,它们也与字母数字字符一起存储。最后一个二进制文件是一个连续的字节序列。我们在文本文件中看到的换行符是将第一行连接到下一个的字符。
有时,由其他程序生成的数据需要由R作为二进制文件处理。另外R需要创建可以与其他程序共享的二进制文件。
R有两个函数WriteBin()和readBin()来创建和读取二进制文件。
用法
writeBin(object, con)
readBin(con, what, n )
以下是使用的参数的描述 -
con是要读取或写入二进制文件的连接对象。
对象是要写入的二进制文件。
什么是像字符,整数等的模式,代表要读取的字节。
n是从二进制文件读取的字节数。
例
我们考虑R内置数据“mtcars”。首先,我们从它创建一个csv文件并将其转换为二进制文件并将其存储为操作系统文件。接下来我们将这个二进制文件读入R中。
写二进制文件
我们将数据帧“mtcars”读为csv文件,然后将其作为二进制文件写入操作系统。
# 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
阅读二进制文件
上面创建的二进制文件将所有数据作为连续字节存储。因此,我们将通过选择列名称和列值的适当值来读取它。
# Create a connection object to read the file in binary mode using "rb".read.filename
当我们执行上面的代码,它产生以下结果和图表 -
[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
我们可以看到,通过读取R中的二进制文件,我们得到了原始数据。