R - 从文件中读取特定行

时间:2015-08-21 02:43:10

标签: mysql r

我们说我有多个文件,每个文件有15,000行和40,000列。我事先已经确定我只需要每个文件的最后5行。 (例如,我需要行14996,14997,14998,14999和15000)。

在R中,我用read.table()循环遍历每个文件,使用" skip"和" nrows"从每个文件中提取我需要的行而不将整个文件读入R的参数。不幸的是,使用skip参数需要很长时间才能使R到达15,000 x 40,000表的最后五行。是否有一种简单,快捷的方法来提取我需要的行?我应该试试mySQL吗?

1 个答案:

答案 0 :(得分:1)

这可能比read.table()

快得多
lapply(files, data.table::fread, skip = 14995L, nrow = 5L)

其中files是您的文件名列表。

更新:根据您的评论,我想您需要在gzfile()中尝试read.table()。你没有提到你是否在之前的尝试中使用过它。

dflist <- lapply(files, function(x) {
    df <- read.table(zz <- gzfile(x), skip = 14995L, nrow = 5L)
    close(zz)
    df
})