Rapidamente lendo tabelas muito grandes como dataframes

Eu tenho tabelas muito grandes (30 milhões de linhas) que gostaria de carregar como um dataframes em R.read.table() tem muitos recursos convenientes, mas parece que há muita lógica na implementação que retardaria as coisas. No meu caso, estou assumindo que eu conheço os tipos das colunas antecipadamente, a tabela não contém cabeçalhos de colunas ou nomes de linhas, e não possui nenhum caractere patológico com o qual eu tenha que me preocupar.

Eu sei que ler em uma tabela como uma lista usandoscan() pode ser bastante rápido, por exemplo:

datalist <- scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0)))

Mas algumas das minhas tentativas de converter isso em um dataframe parecem diminuir o desempenho do acima por um fator de 6:

df <- as.data.frame(scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0))))

Existe um jeito melhor de fazer isso? Ou possivelmente uma abordagem completamente diferente do problema?

questionAnswers(8)

yourAnswerToTheQuestion