R 语言读写文件

引言

在 R 中,file 属于 connection 的一种类型,由函数file创建。

默认情况下,connection 在创建时不会打开。规则是,如果 connection 尚未打开,则使用连接的函数应打开连接,如果已打开连接,则应在使用后关闭连接。简而言之,将连接保持在您找到它的状态。有一些通用函数 openclose 以及显式打开和关闭连接的方法。

通过 gzip 使用的算法压缩的文件可以用函数 gzfile 创建 connection,而通过 bzip2 压缩的文件可以通过 bzfile 创建 connection。

二进制文件

函数 readBinwriteBin 从二进制文件读取和写入。通过将 mode 指定为 “b” 以二进制模式打开连接,即使用模式 “rb” 进行读取,使用模式 “wb”“ab”(在适当的情况下)进行写入。函数有参数

readBin(con, what, n = 1, size = NA, endian = .Platform$endian) 
writeBin(object, con, size = NA, endian = .Platform$endian)

在每种情况下,con 都是一个连接,如果需要,它将在调用期间打开,如果给出字符串,则假定指定文件名。

描述写入稍微简单一些,所以我们将首先介绍 writeBinobject 应该是一个原子向量对象,即模式为 numeric、integer、logical、character、complex 或 raw 的向量,没有属性。默认情况下,这将作为字节流写入文件,与内存中表示的完全相同。

readBin 从文件中读取字节流并将它们解释为由 what 给出的模式向量。这可以是适当模式的对象(例如 what=integer())或描述模式的字符串(上一段中给出的五个之一或“double”或“int”)。参数 n 指定要从连接中读取的向量元素的最大数量:如果可用的更少,则将返回更短的向量。signed 参数允许将 1 字节或 2 字节整数读取为有符号(默认)或无符号整数。

其余两个参数用于写入或读取数据以与另一个程序或另一个平台交换。默认情况下,二进制数据直接从内存传输到连接,反之亦然。如果要将数据传输到具有不同架构的机器上,这还不够,但在几乎所有 R 平台之间,唯一需要的更改是字节顺序。普通 PC(基于“ix86”和“x86_64”的机器)、Compaq Alpha 和 Vaxen 是小端,而 Sun Sparc、mc680x0 系列、IBM R6000、SGI 和大多数其他都是大端。 (网络字节顺序(由 XDR 使用,eXternal Data Representation)是大端的。)为了与其他程序进行传输或从其他程序传输,我们可能需要多做一些事情,例如读取 16 位整数或写入单精度实数。这可以使用 size 参数来完成,该参数(通常)允许整数和逻辑的大小为 1、2、4、8,而实数的大小为 4、8 甚至 12 或 16。以不同大小传输可能会损失精度,不应尝试用于包含 NA 的向量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值