Używam SAS profesjonalnie od prawie 5 lat. Mam go zainstalowanego na swoim laptopie i często muszę analizować zestawy danych z 1000-2 000 zmiennych i setkami tysięcy obserwacji.
Szukałem alternatyw dla SAS, które pozwalają mi przeprowadzać analizy zbiorów danych o podobnych rozmiarach. Jestem ciekawy, co inni ludzie używają w takich sytuacjach. Z pewnością nie jest to „Big Data” w sposób, w jaki jest dziś używany. Moje zestawy danych nie są też wystarczająco małe, aby pomieścić je w pamięci. Potrzebuję rozwiązania, które może zastosować algorytmy do danych przechowywanych na dysku twardym. Oto rzeczy, które zbadałem bezskutecznie:
- R - BigMemory może tworzyć macierze przechowywane poza pamięcią, ale elementy muszą mieć ten sam tryb. Pracuję z danymi, które są prawie w 50/50 podzielone między znak i cyfrę. Pakiet FF zbliża się do tego, czego potrzebuję, ale nie do końca rozumiem, które procedury są z nim zgodne. Myślę, że wsparcie jest nieco ograniczone.
- Pandy - Byłem bardzo podekscytowany pytoniczną alternatywą dla R. Jednak to też musi przechowywać wszystkie dane w pamięci.
- Revolution R - Ten pokazuje sporo obietnic. Mam kopię na moim komputerze domowym (bezpłatnie, jeśli zarejestrujesz się w Kaggle) i jeszcze nie przetestowałem jej jako realnej alternatywy dla SAS. Komentarze na temat Revolution R jako alternatywy SAS są bardzo mile widziane.
Dzięki
AKTUALIZACJA 1
Edycja dodająca, że szukam praktycznych praktycznych rozwiązań, z których ludzie z powodzeniem korzystają. W większości przypadków SAS pozwala mi przeszukiwać duże pliki bez martwienia się o ograniczenia pamięci. Mimo że SAS został wdrożony, wymyślili, jak zarządzać pamięcią w sposób przejrzysty dla użytkownika. Ale z ciężkim sercem użyłem SAS do mojej pracy (muszę) i UWIELBIAM alternatywę FOSS, która pozwala mi pracować na „dużych” danych bez zbytniego zastanawiania się, gdzie są one umieszczone określony czas (w pamięci lub na dysku).
Najbliższe rzeczy, na które natknąłem się, to pakiet FF R i coś na horyzoncie dla Pythona o nazwie Blaze . A jednak problemy te istnieją od wielu lat, więc co robili analitycy w międzyczasie? Jak radzą sobie z tymi samymi problemami z limitami pamięci? Większość oferowanych rozwiązań to:
- Uzyskaj więcej pamięci RAM - to nie jest dobre rozwiązanie, imo. Łatwo jest znaleźć zestaw danych, który może przekraczać pamięć RAM, ale nadal mieści się na dysku twardym. Ponadto przepływ pracy musi uwzględniać wszystkie struktury tworzone podczas analizy danych eksploracyjnych.
- Podzbiór danych - nadaje się do eksploracji, ale nie do finalizacji wyników i raportowania. W końcu wszelkie procesy opracowane na podzbiorze będą musiały zostać zastosowane do całego zestawu danych (w moim przypadku i tak).
- Przekrój dane - o tym chciałbym dowiedzieć się więcej od osób, które faktycznie wdrażają ten przepływ pracy. Jak to jest zrobione? Z jakich narzędzi? Czy można to zrobić w sposób przejrzysty dla użytkownika? (tzn. utwórz strukturę danych na dysku, a praca nad ramkami zajmie się fragmentami pod maską).