Egy elég hosszúra nyúlt hibakeresési folyamat végén találtam rá arra, ami talán másokat is igen erősen érinthet, akik a data.table csomag segítségével tartják kordában (illetve memóriában) az adatokat, aztán a knitr segítségével próbálnak jelentést generálni.
A knitr nem figyel fel a data.table::set() függvényt helyettesítő := operátorra, ami miatt az épp így módosított táblázatot teljes egészében beleírja a dokumentumba. Mivel ez nem túl kívánatos, a megoldás az, hogy minden egyes ilyen műveletnél rendeljük hozzá a táblázat saját nevét:
1 |
DT[, a:=sum(b)] helyett DT <- DT[, a:=sum(b)] |
Ilyen módon a memóriafogyasztás illetve a sebesség sem csorbul jelentősen, viszont nem kell százoldalas táblázatokat nézegetnünk.
További olvasmányok a témárór a Stack Owerflow-n angolul: felületesebben és részletesebben.
Via: data.table vs. knitr