Szukałem również świętego Graala odpowiedniego przepływu pracy do złożenia dużego projektu R. Znalazłem w zeszłym roku ten pakiet o nazwie rsuite i na pewno tego właśnie szukałem. Ten pakiet języka R został specjalnie opracowany do wdrażania dużych projektów języka R, ale odkryłem, że może być używany do projektów o mniejszym, średnim i dużym rozmiarze. Dam linki do rzeczywistych przykładów światowych w minutę (poniżej), ale najpierw chcę wyjaśnić nowy paradygmat budowania projektów R z rsuite.
Uwaga. Nie jestem twórcą ani programistą rsuite.
Z RStudio źle robiliśmy projekty; celem nie powinno być stworzenie projektu lub pakietu, ale szerszy zakres. Zamiast tego tworzysz super-projekt lub projekt główny, który zawiera standardowe projekty języka R i pakiety języka R we wszystkich możliwych kombinacjach.
Posiadając super-projekt R nie potrzebujesz już Uniksa makedo zarządzania niższymi poziomami projektów R poniżej; używasz skryptów R na górze. Pokażę ci. Tworząc główny projekt oprogramowania rsuite, otrzymujesz następującą strukturę folderów:

Folder Rto miejsce, w którym umieszczasz skrypty zarządzania projektami, te, które zostaną zastąpione make.
Folder packagesto folder, w którym rsuiteznajdują się wszystkie pakiety składające się na super-projekt. Możesz także skopiować i wkleić pakiet, który nie jest dostępny z Internetu, a rsuite również go zbuduje.
folder deployment, gdzie rsuitebędzie zapisywać wszystkie pliki binarne pakiety, które zostały wskazane w pakietach DESCRIPTIONplików. Zatem to sprawia, że projekcja jest całkowicie odtwarzalna w czasie.
rsuitezawiera klienta dla wszystkich systemów operacyjnych. Przetestowałem je wszystkie. Ale możesz także zainstalować go jako addindla RStudio.
rsuiteumożliwia także tworzenie izolowanej condainstalacji w swoim własnym folderze conda. To nie jest środowisko, ale fizyczna instalacja Pythona pochodząca z programu Anaconda na twoim komputerze. Działa to razem z R SystemRequirements, z których możesz zainstalować wszystkie pakiety Pythona, które chcesz, z dowolnego kanału Conda.
Możesz także tworzyć lokalne repozytoria, aby pobierać pakiety R, gdy jesteś w trybie offline lub chcesz zbudować całość szybciej.
Jeśli chcesz, możesz również skompilować projekt R jako plik zip i udostępnić go współpracownikom. Będzie działać, pod warunkiem, że Twoi koledzy mają zainstalowaną tę samą wersję R.
Inną opcją jest zbudowanie kontenera całego projektu w systemie Ubuntu, Debian lub CentOS. Dlatego zamiast udostępniać plik zip z kompilacją projektu, udostępniasz cały Dockerkontener z projektem gotowym do uruchomienia.
Dużo eksperymentowałem, rsuiteszukając pełnej odtwarzalności i unikając zależności pakietów, które instaluje się w środowisku globalnym. Jest to błędne, ponieważ gdy tylko zainstalujesz aktualizację pakietu, projekt najczęściej przestaje działać, szczególnie te pakiety z bardzo określonymi wywołaniami funkcji z określonymi parametrami.
Pierwszą rzeczą, którą zacząłem eksperymentować, były bookdownebooki. Nigdy nie miałem tyle szczęścia, że udało mi się przetrwać próbę czasu dłuższą niż sześć miesięcy. Tak więc przekonwertowałem oryginalny projekt bookdown na zgodny z rsuiteramami. Teraz nie muszę się martwić aktualizacją mojego globalnego środowiska R, ponieważ projekt ma własny zestaw pakietów w deploymentfolderze.
Następną rzeczą, jaką zrobiłem, było tworzenie projektów uczenia maszynowego, ale rsuiteprzeszkadzało. Główny, aranżacyjny projekt u góry, a wszystkie podprojekty i pakiety mają być pod kontrolą głównego. Naprawdę zmienia sposób programowania w R, zwiększając produktywność.
Potem zacząłem pracować w nowej paczce o nazwie rTorch. Było to możliwe w dużej mierze dzięki rsuite; pozwala myśleć i osiągać sukcesy.
Jedna rada. Nauka rsuitenie jest łatwa. Ponieważ przedstawia nowy sposób tworzenia projektów R, wydaje się trudne. Nie przejmuj się pierwszymi próbami, kontynuuj wspinaczkę po zboczu, aż się uda. Wymaga zaawansowanej wiedzy o systemie operacyjnym i systemie plików.
Spodziewam się, że pewnego dnia RStudiobędziemy mogli generować projekty aranżacyjne, takie jak rsuitez menu. Byłoby świetnie.
Spinki do mankietów:
Repozytorium RSuite GitHUb
r4ds bookdown
keras i błyszczący tutorial
moderndive-book-rsuite
interpretable_ml-rsuite
IntroMachineLearningWithR-rsuite
clark-intro_ml-rsuite
hyndman-bookdown-rsuite
statystyczne_rethinking-rsuite
fread-benchmarks-rsuite
dataviz-rsuite
samouczek-segmentacji-handlu-h2o
telco-customer-churn-tutorial
sclerotinia_rsuite