可能重复:
从一个巨大的文本文件中读取最后n行
我已使用创建了与文件的连接
con=file(path_of_myfile)
Run Code Online (Sandbox Code Playgroud)
现在我想只读最后一行而不加载所有东西(它是一个巨大的文件).
我正在尝试使用
?readLines
Run Code Online (Sandbox Code Playgroud)
没有成功.
任何的想法?
由于您使用的是Windows,因此如果您想自己构建R软件包,请下载并安装Duncan的Rtools.(如果你在Linux上,那么唯一的区别是你不需要下载任何东西,因为gawk已经存在.)然后发出这个R命令:
system("gawk 'END {print}' myfile", intern = TRUE)
Run Code Online (Sandbox Code Playgroud)
如果你在类似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)