Schnelles Lesen sehr großer Tabellen als Datenrahmen

Ich habe sehr große Tabellen (30 Millionen Zeilen), die ich als Datenrahmen in R laden möchte.read.table() hat viele praktische Funktionen, aber es scheint, als ob die Implementierung eine Menge Logik enthält, die die Dinge verlangsamen würde. In meinem Fall gehe ich davon aus, dass ich die Arten der Spalten im Voraus kenne, die Tabelle keine Spaltenüberschriften oder Zeilennamen enthält und keine pathologischen Zeichen enthält, um die ich mich kümmern muss.

Ich kenne das Lesen in einer Tabelle als Liste mitscan() kann ziemlich schnell sein, z.

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

Einige meiner Versuche, dies in einen Datenrahmen umzuwandeln, scheinen jedoch die Leistung des oben genannten um den Faktor 6 zu verringern:

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

Gibt es einen besseren Weg, dies zu tun? Oder vielleicht ganz andere Herangehensweise an das Problem?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage