在 R 中打印文本文件的前几行



>我有一个没有明显表格或其他结构的文本文件,例如内容

some text on line 1
some more text on line 2
even more text on the third line
etc

将此文件中的前几行(例如 2 行(文本打印到控制台的最优雅和类似 R 的方式是什么?

选项 1readLines

readLines('file.txt', n=2)
# [1] "some text on line 1"      "some more text on line 2"

n=2选项很有用,但我想要原始文件内容,而不是作为矢量元素的单个行。

选项 2file.show

file.show('file.txt')
# some text on line 1
# some more text on line 2
# even more text on the third line
# etc

这种输出格式是我希望看到的,但是缺少限制行数的选项,例如readLines中的n=2

选项 3system('head')

system('head -n2 file.txt')
# some text on line 1
# some more text on line 2

这正是我想要获得的输出,但我不确定这是否适用于所有平台,并且为如此简单的任务调用外部命令有点尴尬。

可以将readLines解决方案与粘贴和cat相结合以格式化输出,但这似乎过多。像file.head这样的简单命令会很好,或者在file.shown=2参数,但两者都不存在。在 R 中实现此目的的最优雅、最紧凑的方法是什么?

为了澄清此处的目标:这是针对 R 教程的编写,其中的叙述类似于"......我们现在已将数据写入一个新的文本文件,所以让我们通过查看前几行来查看它是否有效......"。此时,一个简单而紧凑的 R 表达式,使用基(update: 或tidyverse(函数来做到这一点将非常有用。

writeLinesreadLines一起使用:

writeLines(readLines("file.txt", 2))

给:

some text on line 1
some more text on line 2

这可以交替地编写为以下管道。它给出相同的输出:

library(magrittr)
"file.txt" %>% readLines(2) %>% writeLines

最新更新