Lendo em pedaços de cada vez usando fread no pacote data.table

Estou tentando inserir um arquivo grande delimitado por tabulação (em torno de 2 GB) usando ofread função no pacotedata.table. No entanto, por ser tão grande, não cabe completamente na memória. Eu tentei inserir em pedaços usando oskip enrow argumentos como:

chunk.size = 1e6
done = FALSE
chunk = 1
while(!done)
{
    temp = fread("myfile.txt",skip=(chunk-1)*chunk.size,nrow=chunk.size-1)
    #do something to temp
    chunk = chunk + 1
    if(nrow(temp)<2) done = TRUE
}

No caso acima, eu estou lendo em 1 milhão de linhas por vez, realizando um cálculo sobre elas, e então obtendo o próximo milhão, etc. O problema com esse código é que depois que cada pedaço é recuperado,fread precisa começar a escanear o arquivo desde o início, já que após cada iteração de loop,skip aumenta em um milhão. Como resultado, depois de cada pedaço,fread leva mais e mais tempo para realmente chegar ao próximo pedaço tornando isso muito ineficiente.

Existe uma maneira de dizerfread pausar a cada 1 milhão de linhas, e depois continuar lendo a partir desse ponto sem precisar reiniciar no início? Alguma solução, ou isso deve ser uma nova solicitação de recurso?

questionAnswers(3)

yourAnswerToTheQuestion