Výkon jedinečný v základu vs data.table

hlasů
1

Mám docela velký soubor dat (4,7 řádků a 42 proměnných). Když jsem se pokusit se zachránit to, aby sdílené jednotce pracuji na s saveRDSWindows vyvolá chybovou zprávu, ale menší datové soubory uložit bez problému. Reagovat na této problematice jsem se rozhodl normalizovat své údaje a uložení příslušné dimenze a faktů data.

Po extrahování sloupců definujících jednu dimenzi dat mým dalším krokem bylo odstranění duplicity v dimenzi s unique, ale vykonávající

dim_data <- unique(dim_data)

způsobilo mé relace viset na poměrně dlouhou dobu, než se vrátí s chybovým hlášením

Chyba: paměť vyčerpání (limit dosaženo?)

Chyba při dodatečné zpracování: nelze přidělit vektor velikosti 127,6 Mb

(Můj stroj má 16 GB paměti RAM).

Zápasil jsem s tím na chvíli, než se snaží

dim_data <- as.data.table(dim_data)
dim_data <- unique(dim_data)

Na kterém místě druhý řádek vykonán okamžitě a úspěšně.

Jsem rád, že má řešení, a chápu, že jiná verze uniqueje volána v závislosti na třídě svého argumentu , ale to, co odpovídá za neschopnost uniquedokonce dokončit výpočet při aplikaci na datových rámců, které přesahují určitou velikost? Je realizace základna velmi neefektivní, a pokud ano, je to známý plánována oprava (I nemohl najít nic o výkonu unique)? Naopak, je to méně o data.table implementaci funkce a více o data.table objekty byly uloženy inteligentněji v zákulisí?

Položena 07/11/2018 v 23:43
zdroj uživatelem
V jiných jazycích...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more