R readLines只读取文件的最后一行

Roc*_*nce 2 r

可能重复:
从一个巨大的文本文件中读取最后n行

我已使用创建了与文件的连接

con=file(path_of_myfile)
Run Code Online (Sandbox Code Playgroud)

现在我想只读最后一行而不加载所有东西(它是一个巨大的文件).

我正在尝试使用

?readLines
Run Code Online (Sandbox Code Playgroud)

没有成功.

任何的想法?

G. *_*eck 8

由于您使用的是Windows,因此如果您想自己构建R软件包,请下载并安装Duncan的Rtools.(如果你在Linux上,那么唯一的区别是你不需要下载任何东西,因为gawk已经存在.)然后发出这个R命令:

system("gawk 'END {print}' myfile", intern = TRUE)
Run Code Online (Sandbox Code Playgroud)


hat*_*rix 5

如果你在类似unix的系统上运行,你可以wc用来计算行数并scan()在R中使用skip参数:

lastline <- function(filename) {
  ## filename is of mode character
  out <- system(sprintf("wc -l %s",filename),intern=TRUE)
  n <- as.integer(sub(sprintf("[ ]*([0-9]+)[ ]%s",filename),"\\1",out))
  print(n)
  scan(filename,what="",skip=n-1,nlines=1,sep="\n",quiet=TRUE)
}

> lastline("myfile")
Run Code Online (Sandbox Code Playgroud)