我已使用
创建了与文件的连接con=file(path_of_myfile)
现在我想只读最后一行而不加载所有内容(它是一个巨大的文件)。
我正在尝试使用
?readLines
没有成功。
有什么想法吗?
答案 0 :(得分:6)
由于您使用的是Windows,因此如果您想自己构建R软件包,请下载并安装Duncan的Rtools,无论如何都需要它。 (如果你在Linux上,那么唯一的区别是你不需要下载任何东西,因为gawk
已经存在。)然后发出这个R命令:
system("gawk 'END {print}' myfile", intern = TRUE)
答案 1 :(得分: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")