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 make
do 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 R
to miejsce, w którym umieszczasz skrypty zarządzania projektami, te, które zostaną zastąpione make
.
Folder packages
to folder, w którym rsuite
znajdują 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 rsuite
będzie zapisywać wszystkie pliki binarne pakiety, które zostały wskazane w pakietach DESCRIPTION
plików. Zatem to sprawia, że projekcja jest całkowicie odtwarzalna w czasie.
rsuite
zawiera klienta dla wszystkich systemów operacyjnych. Przetestowałem je wszystkie. Ale możesz także zainstalować go jako addin
dla RStudio.
rsuite
umożliwia także tworzenie izolowanej conda
instalacji 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 Docker
kontener z projektem gotowym do uruchomienia.
Dużo eksperymentowałem, rsuite
szukają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 bookdown
ebooki. 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 rsuite
ramami. Teraz nie muszę się martwić aktualizacją mojego globalnego środowiska R, ponieważ projekt ma własny zestaw pakietów w deployment
folderze.
Następną rzeczą, jaką zrobiłem, było tworzenie projektów uczenia maszynowego, ale rsuite
przeszkadzał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 rsuite
nie 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 RStudio
będziemy mogli generować projekty aranżacyjne, takie jak rsuite
z 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