迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 R 中逐行读取文本文件

作者:迹忆客 最近更新:2023/03/21 浏览次数:

使用 readLines() 函数很容易将纯文本文件读入 R。结果是一个字符向量,其中每个元素都是一个字符串,包括来自文本文件的一行。

但是当我们不想将整个文件加载到内存中时,我们需要一次一行地读取和处理文本文件。

R 中的连接是什么

在 R 中,连接是类文件对象的接口。

诸如 readLines() 之类的函数打开一个连接,使用它并关闭它。它一次读取整个文件。

要顺序读取文件,我们必须显式打开一个连接。为此,我们将使用 file() 函数。

我们将使用的选项如下。

  1. description 代表文件名
  2. open 指定我们只想读取文件
  3. blocking = TRUE

在 R 中使用 readLines() 函数逐行读取文本文件

只要读取行,我们就会使用 readLines() 函数。因为我们不知道行数,所以我们需要知道何时到达文件末尾。

当文件中没有更多行时,readLines() 函数返回一个空字符向量 character(0)

此时,我们将使用 break 退出循环。请注意,循环不会在空行处中断,因为它们具有行尾标记。

我们将在每次循环迭代中使用 identical() 函数来检查该行是否与 character(0) 相同。

如果是,我们 break;否则,我们处理该行。在示例中,我们将其打印出来。

根据文档,文本文件的最后一行应该有一个行尾标记,以便 readLines() 函数能够始终如一地工作。

首先,用以下文本创建一个纯文本文件,并用 UTF-8 编码和合适的文件名保存(我们需要相应地替换代码中的文件名)。

The first line.
The second line.
The third line.

Last line.

在示例代码中,我们将执行以下操作。

  1. 创建一个连接并打开它。
  2. 循环遍历文件,一次一行,打印它。
  3. 当行是 character(0) 时退出循环。
  4. 关闭连接。显式打开的连接需要显式关闭。

示例代码:

# Explicitly create and and open a connection.
# REPLACE THE FILE NAME AS PER YOUR FILE.
myCon = file(description = "filename.txt", open="r", blocking = TRUE)

# The position in the connection advances to the next line on each iteration.
# Loop till the line is the empty vector, character(0).
repeat{
  pl = readLines(myCon, n = 1) # Read one line from the connection.
  if(identical(pl, character(0))){break} # If the line is empty, exit.
  print(pl) # Otherwise, print and repeat next iteration.
}

# Explicitly opened connection needs to be explicitly closed.
close(myCon)
rm(myCon) # Removes the connection object from memory.

参考和帮助

请参阅 R 数据导入/导出手册 的第 7 节。

此外,请参阅 connectionsfilereadLines 的文档。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

R 中具有多个条件的函数向量化

发布时间:2023/03/21 浏览次数:64 分类:编程语言

一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更

在 R 中读取 xlsx 文件

发布时间:2023/03/21 浏览次数:66 分类:编程语言

在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。

清理 R 的环境

发布时间:2023/03/21 浏览次数:178 分类:编程语言

在本教程中,你将学习如何在 R 中编写一个函数,在不需要重新启动 R 的情况下清除环境。

在 R 中注释掉多行

发布时间:2023/03/21 浏览次数:63 分类:编程语言

在本文中,你将学习如何在 R 中注释出多行,而不必在每一行的开头手动写一个#字符来注释。

在 R 中清除内存

发布时间:2023/03/21 浏览次数:197 分类:编程语言

在本教程中,你将学习如何清除 R 系统占用的内存,而不必重新启动它或重新启动它运行的计算机。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便