Okna.  Wirusy.  Laptopy.  Internet.  Biuro.  Narzędzia.  Kierowcy

Podczas pracy ze skryptem R może zaistnieć potrzeba jego automatycznej aktualizacji. Pakiet „taskscheduleR” pomaga skonfigurować harmonogram uruchamiania skryptu R w Harmonogramie zadań systemu Windows codziennie, co tydzień, co N minut, po Uruchamianie systemu Windows i tak dalej.

  1. Zainstaluj pakiet „taskscheduleR” Library(devtools) install.packages("devtools") install_github("jwijffels/taskscheduleR") Library(taskscheduleR)

    Korzystamy z pakietu „devtools”, który umożliwia pobieranie i instalowanie pakietów bezpośrednio z GitHuba.

  2. Następnie, aby skonfigurować uruchomienie skryptu, możesz skorzystać z interaktywnej konfiguracji poprzez formularz lub pisząc kilka linijek kodu.

Konfigurowanie harmonogramu skryptów R w Harmonogramie zadań za pomocą dodatków:

Konfigurowanie harmonogramu skryptu R przy użyciu funkcji pakietu taskcheduleR:

Funkcje pakietu:

  • Uzyskaj listę wszystkich zadań w narzędziu Windows Task Sheduler
  • Usuń zadanie z Harmonogramu zadań systemu Windows
  • Dodaj zadanie uruchamiania skryptu R
    • Dostępne są następujące harmonogramy: „JEDNORAZOWY”, „MIESIĘCZNY”, „TYGODNIOWY”, „CODZIENNY”, „GODZINOWY”, „MINUTOWY”, „ONLOGON”, „ONIDLE”
## Określ nazwę pliku skryptu R do późniejszej pracy z nim myscript<- system.file("extdata", "helloworld.R", package = "taskscheduleR") ## Запуск скрипта разово через 35 секунд taskscheduler_create(taskname = "myscript", rscript = myscript, schedule = "ONCE", starttime = format(Sys.time() + 35, "%H:%M")) ## Запуск скрипта ежедневно в 10:15, начиная с завтрашнего дня ## Важно: необходимо поменять формат даты, если он не совпадает с тем, что стоит на компьютере (пример: %m/%d/%Y) taskscheduler_create(taskname = "myscriptdaily", rscript = myscript, schedule = "DAILY", starttime = "10:15", startdate = format(Sys.Date()+1, "%d/%m/%Y")) ## Запуск скрипта каждую неделю в 10:15 по понедельникам taskscheduler_create(taskname = "myscript_mon", rscript = myscript, schedule = "WEEKLY", starttime = "10:15", days = "MON") ## Запуск каждые 5 минут, начиная с 10:15 taskscheduler_create(taskname = "myscript_5min", rscript = myscript, schedule = "MINUTE", starttime = "10:15", modifier = 5) ## Получить data.frame со всеми задачами tasks <- taskscheduler_ls() str(tasks) ## Удалить задачи taskscheduler_delete(taskname = "myscript") taskscheduler_delete(taskname = "myscriptdaily") taskscheduler_delete(taskname = "myscript_,mon") taskscheduler_delete(taskname = "myscript_5min") taskscheduler_delete(taskname = "myscript_withargs_a") taskscheduler_delete(taskname = "myscript_withargs_b")

Na co zwracamy uwagę:

  • Format daty. Musi odpowiadać formatowi daty na Twoim komputerze. W przeciwnym razie otrzymamy albo błąd w ustaleniu harmonogramu uruchomienia skryptu, albo zupełnie inną datę.
  • Aktywność komputera. Podczas uruchamiania skryptu komputer musi być włączony
  • Dostępność innych harmonogramów skryptów. Podczas konfigurowania nowego harmonogramu o tej samej nazwie poprzedni harmonogram zostanie usunięty.

Jedną z zalet języka R jest łatwość wykorzystania programowania równoległego w celu przyspieszenia obliczeń. W tym artykule pokażemy, jak przejść od uruchamiania funkcji na wielu procesorach lub rdzeniach do uruchamiania na wielu komputerach (w celu uzyskania jeszcze większej skali i szybkości).

Sam R nie jest przeznaczony do obliczeń równoległych. Nie ma wielu równoległych struktur dostępnych dla użytkownika. Na szczęście problemy związane z nauką o danych, do rozwiązywania których najczęściej używamy języka R, bardzo dobrze nadają się do programowania równoległego i istnieje wiele doskonałych bibliotek, które to wykorzystują. Oto trzy główne sposoby wykorzystania równoległości zapewnianej przez biblioteki:

  • Podłącz wydajniejsze biblioteki równoległe, takie jak Intel BLAS(dostępne w systemach Linux, OS X i Windows w ramach dystrybucji Microsoft R Open). Umożliwi to podmianę już używanych bibliotek na ich wersje równoległe, co zaowocuje przyspieszeniem (na odpowiednich zadaniach, np. związanych z algebrą liniową w lm()/glm()).
  • Przenieś przetwarzanie zadań modelowania z języka R do biblioteki zewnętrznej w celu zrównoleglenia. Z takiej strategii korzystają następujące systemy: metody rx z RevoScaleR (obecnie Microsoft Open R), metody h2o z h2o.ai, RHadoop.
  • Użyj narzędzia równoległego w R, aby uruchomić funkcje w innych instancjach R. Strategia ta pochodzi z Małego wprowadzenia do programowania równoległego w R i kilku bibliotek równoległych. W rzeczywistości jest to implementacja zdalnego wywołania procedury za pośrednictwem gniazda lub sieci.

Przyjrzyjmy się bliżej trzeciemu podejściu.

W rzeczywistości trzecie podejście polega na bardzo szczegółowym zdalnym wywołaniu procedury. Polega na przekazywaniu kopii kodu i danych do zdalnych procesów, a następnie zwracaniu wyników. Jest to złe w przypadku bardzo małych zadań, ale świetne w przypadku rozsądnej liczby średnich i dużych zadań. Strategia ta jest używana w bibliotece równoległej R oraz w bibliotece wieloprocesowej Pythona (chociaż w przypadku przetwarzania wieloprocesowego Python może potrzebować kilku dodatkowych bibliotek, aby przenieść się z pojedynczej maszyny do przetwarzania w klastrze).

Metoda ta może wydawać się mniej wydajna i mniej złożona niż metody z pamięcią rozproszoną, ale opierając się na przekazywaniu obiektów, technikę można bardzo łatwo rozszerzyć z jednej maszyny na wiele („przetwarzanie klastrowe”). Dokładnie to samo zrobimy z kodem R w tym artykule (przejście z pojedynczej maszyny do klastra spowoduje wprowadzenie wielu problemów z systemami/sieciami/bezpieczeństwami, którymi należy się zająć).

Będziesz potrzebował całego kodu R z poprzedniego artykułu. Zakłada również, że możesz skonfigurować ssh lub mieć kogoś, kto może pomóc w konfiguracji. Zamiast uruchamiać klaster równoległy za pomocą polecenia „paraleCluster<- parallel::makeCluster(parallel::detectCores()) ” сделайте следующее.

Zbierz listę adresów komputerów, do których możesz się połączyć poprzez ssh. To zależy od tej trudnej części system operacyjny i może wymagać pomocy, jeśli nie zrobiłeś tego wcześniej. W tym przykładzie używam adresów IPv4, a w przypadku Amazon EC2 używam nazw hostów.

W moim przypadku lista wygląda następująco:

  • Mój komputer (podstawowy): „192.168.1.235”, użytkownik „johnmount”
  • Kolejna maszyna Win-Vector LLC: „192.168.1.70”, użytkownik „johnmount”

Należy pamiętać, że nie zbieramy haseł, zakładając, że w konfiguracjach „.ssh” wszystkich tych maszyn ustawione są prawidłowe „klucze_autoryzowane” i pary kluczy. Nazwiemy maszynę, za pomocą której obliczenia zostaną przeprowadzone, jako całość „podstawową”.

Zdecydowanie warto wypróbować wszystkie te adresy z „ssh” w terminalu przed użyciem ich w R. Ponadto adres maszyny wybranej jako „podstawowy” musi być osiągalny z maszyn produkcyjnych (tj. nie można użyć „localhost” ani wybrać nieosiągalna maszyna „podstawowa”) Spróbuj ręcznie ssh pomiędzy maszyną podstawową a innymi maszynami i odwrotnie, po czym ustawienia będą mogły być użyte w R.

Mając za sobą ustawienia systemowe, część R będzie wyglądać tak. Uruchom klaster:

Podstawowy<- "192.168.1.235" machineAddresses <- list(list(host=primary,user="johnmount", ncore=4), list(host="192.168.1.70",user="johnmount", ncore=4)) spec <- lapply(machineAddresses, function(machine) { rep(list(list(host=machine$host, user=machine$user)), machine$ncore) }) spec <- unlist(spec,recursive=FALSE) parallelCluster <- parallel::makeCluster(type="PSOCK", master=primary, spec=spec) print(parallelCluster) ## socket cluster with 8 nodes on hosts ## ‘192.168.1.235’, ‘192.168.1.70’

To wszystko. Teraz możesz uruchamiać swoje funkcje na wielu rdzeniach na wielu komputerach. W przypadku właściwych zadań przyspieszenie będzie istotne. Zawsze warto zastosować podejście krok po kroku: najpierw napisz proste „witaj świecie” w swoim klastrze, następnie upewnij się, że mniejsza wersja obliczeń działa lokalnie, a dopiero potem przenieś pracę do klastra.

Istnieje inny sposób pracy z klastrami w R. Najpierw potrzebujemy wersji R z preinstalowanymi pakietami Rmpi ​​i snow. W tym celu proponuję wersję R HSPCC, prowadzoną przez Caspera Daniela Hansena. Oto instrukcja instalacji.

Przyjrzymy się dwóm prostszym metodom przetwarzania równoległego w R. Pierwsza, wykorzystująca pakiet wielordzeniowy, ogranicza się do procesorów w jednym węźle. Choć może się to wydawać poważną wadą, w rzeczywistości może być dużą zaletą, ponieważ komunikacja między procesami będzie o kilka rzędów wielkości szybsza. Drugą opcją jest wykorzystanie pakietu snow, który umożliwia wykorzystanie MPI (interfejsów przesyłania danych pomiędzy węzłami) do obliczeń podklastrów.

Używanie wielu rdzeni w węźle

Pakiet wielordzeniowy bardzo skutecznie przyspiesza proste obliczenia dzięki wykorzystaniu więcej niż jednego rdzenia procesora na raz. Jest bardzo łatwy w obsłudze i szybki we wdrożeniu.

Rozpocznij proces w węźle klastra wieloprocesorowego, wpisując następującą komendę:

Qrsh -l mcmc -pe lokalny 10-12

Zauważ, że tutaj żądamy 10-12 procesorów w jednym węźle w kolejce mcmc. Liczbę dostępnych rdzeni można sprawdzić w zmiennej środowiskowej NSLOTS, dostępnej w R za pomocą następującego polecenia:

As.integer(Sys.getenv("NSLOTS"))

Następnym krokiem jest uruchomienie R i załadowanie biblioteki wielordzeniowej. Na koniec możesz kontynuować, używając polecenia mclapply zamiast lapply w języku R (przekazując liczbę rdzeni używaną jako argument mc.cores).

Używanie śniegu między wieloma węzłami

Poniżej znajduje się instrukcja w formie prostego przykładu jak wywołać klaster MPI w R oraz jak wykorzystać klaster do prostych obliczeń.

Aby uruchomić klaster MPI z 12 węzłami (rdzeniowymi), musisz wpisać:

Qrsh -V -l cegs -pe orte 12 /opt/openmpi/bin/mpirun -np 12 ~hcorrada/bioconductor/Rmpi/bstRMPISNOW

To polecenie powinno uruchomić 12 instancji R, z których jedna będzie podstawowa. Należy pamiętać, że proces uruchamiania znajdował się w kolejce cegów. Następnie możesz użyć węzłów zainstalowanych z mpirunem, wpisując to w R:

kl<- getMPIcluster()

Następnie możesz przeglądać i używać potrzebnych poleceń dotyczących śniegu. Na przykład,

ClusterCall(cl, funkcja() Sys.info())

wyświetli listę węzłów w twoim klastrze (a dokładniej 11 działających węzłów roboczych). znajduje się lista dostępnych poleceń.

Po zakończeniu obliczeń na klastrze należy zamknąć węzły za pomocą następującego polecenia:

ZatrzymajCluster(cl)

Ostrzeżenie: Upewnij się, że nie anulujesz procesów R, naciskając Ctrl+C. Może to powodować problemy ze śniegiem.

Przykład: Porównanie przetwarzania szeregowego i równoległego

>f.długie<-function(n) { + xx<-rnorm(n) + log(abs(xx))+xx^2 + } #Использование multicore ############ >system.time(mclapply(rep(5E6,11),f.long,mc.cores=11)) upłynął system użytkownika 26,271 3,514 5,516 #Using snow via MPI ############ > system. time(sapply(rep(5E6,11),f.long)) upłynął system użytkownika 17,975 1,325 19,303 > system.time(parSapply(cl,rep(5E6,11),f.long)) upłynął system użytkownika 4,224 4,113 8,338

Należy pamiętać, że przetwarzanie równoległe ze śniegiem zapewnia poprawę czasu obliczeń o ponad 50%. Choć można się spodziewać poprawy na poziomie 10/11=91%, należy pamiętać, że procesory niekoniecznie znajdują się w tym samym węźle, a komunikacja między węzłami może być dość powolna. Ta interakcja może być tak powolna, że ​​bez niej procedura wielordzeniowa może skrócić czas obliczeń o 40%.

W związku z tym warto pamiętać, że korzyści w zakresie czasu obliczeń wynikające z użycia więcej niż jednego węzła klastra można w dużym stopniu zrekompensować czasem spędzonym na komunikacji między węzłami. Zależy to oczywiście od przeprowadzanych obliczeń i sposobu ich realizacji.

1. Instalacja

Instalator RStudio należy pobrać z oficjalnej strony projektu. RStudio można zainstalować zarówno na komputerze osobistym, jak i na serwerze zarządzanym przez Linux. Poniżej mówimy o wersji programu na komputery osobiste.

Instalatory RStudio są dostępne dla wszystkich najpopularniejszych systemów operacyjnych, w szczególności Windows XP/Vista/7, Mac OS X 10.5, Debian 6+/Ubuntu 10.04 i Fedora 13. Wybierz z listy odpowiedni plik i pobierz go. Instalacja odbywa się w standardzie, bez żadnych specjalnych funkcji.

2. Praca z konsolą

2.1. Informacje ogólne

Konsola RStudio udostępnia szereg opcji ułatwiających i produktywnych pracę z językiem R. Opanowanie tych opcji wraz z możliwościami dostępnymi w panelach Źródło i Historia może sprawić, że czas poświęcony na naukę będzie opłacalny.

2.2. Automatyczne uzupełnianie kodu

RStudio obsługuje automatyczne uzupełnianie kodu za pomocą klawisza Tab. Na przykład, jeśli w obszarze roboczym masz obiekt o nazwie pollResults, możesz wpisać poll na klawiaturze, nacisnąć klawisz Tab, a RStudio automatycznie uzupełni nazwę tego obiektu. Podobnie możesz uzyskać wskazówki dotyczące funkcji po wpisaniu ich nazw. Przykładowo wpisując nazwę podfunkcji i naciskając Tab otrzymamy:

Uzupełnianie kodu działa również w przypadku argumentów funkcji; na przykład, jeśli wpiszesz subset( i naciśniesz Tab, otrzymasz:

2.3. Wróć do poprzednich poleceń

Podczas pracy z R zawsze istnieje potrzeba ponownego wykonania tego lub innego polecenia, które zostało już wykonane wcześniej. Podobnie jak standardowa konsola R, konsola RStudio obsługuje możliwość poruszania się po wcześniej wykonanych poleceniach za pomocą klawiszy strzałek.

Aby wyświetlić listę ostatnio wykonanych poleceń i wybrać konkretne polecenie z tej listy, możesz także użyć skrótu klawiaturowego Ctrl+Up (Command-Up na komputerach Mac):

Ta sama kombinacja klawiszy nadaje się również do szybkiego wyszukiwania wcześniej wywołanych funkcji, których nazwy mają określony przedrostek. Na przykład, aby wyszukać funkcje, które mają w nazwie plot, po prostu wpisz plot i naciśnij Ctrl+Up:

2.4. Tytuł okna konsoli

W nagłówku okna konsoli dostępnych jest kilka dodatkowych opcji:

  • Wyświetl katalog roboczy.
  • Możliwość przerwania bieżących obliczeń.
  • Zwiń i zmaksymalizuj okno Konsoli w stosunku do panelu Źródło (za pomocą przycisków w prawym górnym rogu lub klikając dwukrotnie na tytuł okna).

2.5. Skróty klawiszowe

Ctrl+L — czyści okno konsoli z tekstu

Esc - przerywa obliczenia

3. Edycja i wykonanie kodu

3.1. Informacje ogólne


Edytor kodu RStudio zawiera szereg opcji zwiększających produktywność, w tym podświetlanie kodu, automatyczne uzupełnianie kodu, edycję wielu plików jednocześnie oraz znajdowanie i zastępowanie określonych części kodu.

Ponadto RStudio ma elastyczność wykonywania kodu bezpośrednio z okna edytora. Dla wielu użytkowników jest to preferowany sposób pracy z R. Uruchamianie poleceń z okna Edytora kodu zamiast z wiersza poleceń konsoli ułatwia powtarzanie tych samych poleceń i pozwala „spakować” takie polecenia w jedną funkcję na później używać.

3.2. Zarządzanie plikami


RStudio obsługuje podświetlanie składni i inne wyspecjalizowane opcje pracy z kodem dla następujących typów plików:

  • Skrypty R
  • Przejrzyj dokumenty
  • Dokumenty TeX-owe
Aby utworzyć nowy plik skorzystaj z menu Plik -> Nowy:

Aby otworzyć istniejący plik należy skorzystać z menu Plik -> Otwórz lub Otwórz ostatnie (aby otworzyć plik, z którym ostatnio pracowałeś). Jeśli jednocześnie otwartych jest kilka plików, możesz szybko przechodzić z jednego dokumentu do drugiego, korzystając z odpowiednich zakładek u góry okna edytora kodu. Aby poruszać się pomiędzy dużą liczbą otwartych plików, użyj ikony >> znajdującej się w prawej górnej części okna Edytora; Możesz także skorzystać z menu Widok -> Przełącz do.



3.3. Uzupełnianie kodu

Jak wspomniano powyżej podczas opisywania pracy z konsolą, RStudio obsługuje automatyczne uzupełnianie kodu za pomocą klawisza Tab. Na przykład, jeśli w obszarze roboczym masz obiekt o nazwie pollResults, możesz wpisać poll na klawiaturze, nacisnąć klawisz Tab, a RStudio automatycznie uzupełni nazwę tego obiektu.


3.4. Znajdowanie i zastępowanie części kodu

Edytor kodu RStudio pozwala znaleźć i zastąpić niezbędne części tekstu. Aby wykonać tę operację, należy użyć skrótu klawiaturowego Ctrl+F lub sekcji menu Edycja -> Znajdź i zamień. W górnej części okna edytora znajduje się przycisk w postaci lupy - kliknięcie go powoduje również otwarcie okna dialogowego, w którym ustawiane są parametry wyszukiwania.



3.5. Automatyczne tworzenie funkcji

Edytor kodu RStudio może przeanalizować wybrany fragment tekstu i automatycznie przekształcić go w funkcję do ponownego wykorzystania. Wszystkie „wolne” zmienne w selekcji (tzn. obiekty, do których istnieją odniesienia, ale które nie zostały utworzone w ramach selekcji) zostaną przekonwertowane na argumenty funkcji:

3.6. Kod komentowania

Aby skomentować podświetlone fragmenty kodu (lub odkomentować) użyj opcji menu Edycja -> Skomentuj/Odkomentuj linie (patrz także rysunek poniżej):

3.7. Wykonywanie kodu

RStudio umożliwia wykonanie kodu bezpośrednio z okna Edytora (wykonane polecenia przesyłane są do Konsoli, gdzie również pojawia się wynik ich wykonania).

Aby wykonać bieżącą linię kodu, możesz użyć skrótu klawiaturowego Ctrl+Enter lub przycisku Uruchom linie znajdującego się w górnej części okna Edytora:


Istnieją dwie możliwości jednoczesnego wykonania wielu linii kodu:

  • Wybierz żądane linie i naciśnij Ctrl+Enter (lub użyj przycisku Uruchom linie znajdującego się na górze okna Edytora);
  • Naciśnij Ctrl+Shift+Enter, aby wykonać wszystkie linie skryptu.

3.8. Skróty klawiszowe

Ctrl+Shift+N – utwórz nowy dokument

Ctrl+O – otwórz dokument

4. Nawigacja po kodzie

4.1. Informacje ogólne

RStudio zawiera wiele opcji do zapewnienia szybka nawigacja według kodu R. Poznanie tych opcji może prowadzić do znacznej poprawy wydajności pracy, a także lepszego zrozumienia kodu, który napisali inni.

4.2. Przejdź do pliku lub funkcji

Jeśli znasz nazwę pliku skryptu lub nazwę funkcji, możesz szybko ją znaleźć, korzystając z pola wyszukiwania Przejdź do pliku/funkcji na głównym pasku narzędzi RStudio:


Opcja „Przejdź do pliku/funkcji” polega na ciągłym indeksowaniu tworzonego kodu. Konkretne pliki do indeksowania określa się w następujący sposób:

  • Jeżeli aktywny jest jakikolwiek projekt RStudio: indeksowane są wszystkie pliki znajdujące się w folderze tego projektu;
  • Jeżeli projekt nie jest aktywny: indeksowane są wszystkie otwarte projekty w tej chwili pliki ze skryptami R.

Skróty klawiszowe umożliwiające wywołanie opcji Przejdź do pliku/funkcji: Ctrl+

4.3. Przejdź do Definicja funkcji

Dzięki ciągłemu indeksowaniu kodu R (patrz wyżej), RStudio może również pomóc w znalezieniu definicji dowolnej funkcji. Aby przejść do kodu funkcji należy najechać kursorem na jej nazwę (nie jest konieczne zaznaczanie jej w całości) i wybrać polecenie Przejdź do definicji funkcji:

Do definicji funkcji można także przejść w następujący sposób:

  • Używanie klawisz skrótu F2.
  • Używając Ctrl + kliknij nazwę funkcji.
  • Korzystanie z edytora kodu lub konsoli.

Można przejść do definiowania nie tylko własnych funkcji, ale także funkcji z dowolnego kodu funkcji R dodatkowe pakiety R jest wyświetlane w specjalnym oknie widoku kod źródłowy(okienko Przeglądarka źródła) i jest tylko do odczytu.

4.4. Nawigacja skryptowa

Istnieje kilka sposobów poruszania się po kodzie zapisanym jako skrypt w osobnym pliku:

  • Omówiona powyżej opcja „Przejdź do pliku/funkcji” umożliwia wyszukiwanie w obrębie pliku otwórz plik ze scenariuszem;
  • Polecenie Skocz do linii służy do przeskakiwania do określonej linii w skrypcie.

Możesz także użyć opcji z odpowiedniego menu (Narzędzia kodu):



4,5. Dwukierunkowa nawigacja kodowa

Podczas poruszania się po kodzie (zwłaszcza przy sekwencyjnym przechodzeniu z jednej funkcji do drugiej) często zachodzi potrzeba szybkiego powrotu do poprzedniego miejsca, w którym edytowałeś kod. RStudio przechowuje listę tych edycji i umożliwia przechodzenie między nimi w dowolnym kierunku za pomocą poleceń Wstecz i Dalej (dostępnych w menu Edycja, a także w lewym górnym rogu okna Edytora kodu). Polecenia Wstecz i Dalej umożliwiają powtarzanie następujących czynności:

  • Otwórz dokument (lub przełączaj się między zakładkami)
  • Przejdź do Definicja funkcji
  • Przejdź do określonej linii kodu
  • Przechodzenie do funkcji za pomocą menu Funkcja
Polecenia Wstecz i Dalej można wywołać za pomocą skrótów klawiaturowych Ctrl+F9 / Ctrl+F10 (Cmd+F9 / Cmd+F10 na komputerach Mac).

5. Korzystanie z historii poleceń

5.1. Informacje ogólne

Podczas działania RStudio tworzy bazę danych wszystkich poleceń, które użytkownik wprowadza w Konsoli. Możesz przeglądać tę bazę danych za pomocą panelu Historia.

5.2. Przegląd historii poleceń

Zakładka Historia w jednym z paneli narzędzia RStudio służy do przeglądania historii wcześniej wykonanych poleceń. Polecenia są wyświetlane w kolejności ich wykonania (ostatnie polecenia na dole listy) i pogrupowane według czasu:

5.3. Przeszukaj historię poleceń

W prawym górnym rogu listy wcześniej wykonanych poleceń znajduje się pole wprowadzania zapytania wyszukiwania(na przykład fabuła ). Możesz zawęzić wyszukiwanie, wpisując kilka słów oddzielonych spacjami (na przykład nazwę tabeli danych):



Po znalezieniu potrzebnego polecenia możesz także wyświetlić inne polecenia, które były uruchomione w tym samym czasie. Aby to zrobić, kliknij strzałkę znajdującą się po prawej stronie czasu wykonania odpowiedniego polecenia:

5.4. Wykonywanie poleceń

Polecenia w panelu Historia można wybierać i następnie wykorzystywać na dwa sposoby (zgodnie z nazwami dwóch przycisków znajdujących się w lewej górnej części panelu):

  • Wyślij do konsoli - wysyła wybrane polecenia do konsoli. Należy jednak pamiętać, że polecenia wysłane do Konsoli nie zostaną wykonane, dopóki nie zostanie naciśnięty klawisz Enter.
  • Wyślij do źródła — wysyła wybrane polecenia do aktywnego dokumentu Edytora kodu. Jeśli obecnie nie ma żadnych aktywnych otwarte dokumenty, zostanie utworzony nowy dokument bez nazwy.

Na liście wcześniej wykonanych poleceń możesz zaznaczyć jedną lub więcej linii:


6. Katalogi robocze i obszary robocze

6.1. Informacje ogólne

Biorąc pod uwagę sposób, w jaki R domyślnie obsługuje pliki .RData i ich obszary robocze, sensowne jest takie zorganizowanie pracy, aby pliki z różnych projektów były przechowywane w różne foldery. Poniższy materiał opisuje możliwości dostępne w RStudio w zakresie organizacji takiego modelu pracy.

6.2. Domyślny katalog roboczy


Podobnie wersja standardowa R, RStudio przestrzega zasady „oryginalnego katalogu roboczego”. Zwykle jest to folder domowy użytkownika. Po uruchomieniu RStudio dzieje się, co następuje:

  • Wykonywany jest plik .Rprofile (jeśli taki istnieje) z oryginalnego folderu roboczego.
  • Ładuje plik .RData (jeśli jest dostępny) z tego folderu do obszar roboczy R.
  • Wykonuje inne akcje opisane w pliku usługi R Uruchomienie.

Jeśli w obszarze roboczym wprowadzono zmiany, po zamknięciu programu RStudio pojawi się okno dialogowe z pytaniem, czy chcesz zapisać obszar roboczy jako plik .RData w bieżącym folderze roboczym. To zachowanie można zmienić w ustawieniach RStudio (menu Narzędzia -> Opcje -> R Ogólne) w następujący sposób:

  • Zmień początkowy katalog roboczy
  • Aktywuj/dezaktywuj automatyczne pobieranie Plik .RData z oryginalnego folderu roboczego R (przywróć plik .RData do obszaru roboczego przy uruchomieniu)
  • Wybierz, czy plik .RData ma być zawsze zapisywany (Zawsze), nigdy (Nigdy), czy też pytany o zapisanie po zakończeniu pracy (Zapytaj).

6.3. Zmiana katalogu roboczego

Bieżący katalog roboczy jest wyświetlany w górnej części okna konsoli. Istnieje kilka sposobów zmiany katalogu roboczego:

  • Użyj funkcji setwd()
  • Skorzystaj z sekcji menu Narzędzia -> Zmień katalog roboczy...
  • Na karcie Pliki wybierz Więcej -> Ustaw jako katalog roboczy

Należy pamiętać o możliwych konsekwencjach zmiany folderu roboczego:

  • Dostępne w kodzie powiązania względne pliki stracą ważność.
  • Po zakończeniu plik .RData zostanie zapisany w nowym folderze.

Ponieważ te skutki uboczne mogą powodować błędy podczas wykonywania kodu, zaleca się rozpoczęcie pracy w folderze odpowiadającym bieżącemu projektowi i nie zmienianie go do końca sesji.

Jeśli wszystkie pliki związane z konkretnym projektem są przechowywane w jednym folderze, warto ustawić go jako folder domowy dla R. Metody wykonania tej operacji będą się różnić w zależności od systemu operacyjnego. Jednak na wszystkich platformach podczas instalacji RStudio program jest powiązany z plikami .RData, .R i innymi plikami związanymi z R. Podczas otwierania takich plików RStudio automatycznie uczyni folderem roboczym ten, w którym przechowywany jest otwierany plik. Należy jednak pamiętać, że jeśli RStudio jest już uruchomione, otwarcie nowych, powiązanych z nim plików nie spowoduje zmiany folderu roboczego.

Aby zapisać obszar roboczy w folderze roboczym R lub załadować przestrzeń z folderu roboczego podczas aktywnej sesji RStudio, możesz użyć następujących poleceń:

Należy pamiętać, że funkcja loading() doda ładowany obszar roboczy do bieżącego. Zatem, jeśli w przestrzeni aktywnej i ładującej znajdują się obiekty o tych samych nazwach, to obiekty z przestrzeni ładowania zastąpią obiekty o tej samej nazwie w przestrzeni aktywnej. Może to prowadzić do niepożądanych konsekwencji. Dlatego przed wczytaniem nowego obszaru roboczego sensowne może być wyczyszczenie aktywnego obszaru. Można to zrobić za pomocą następującego polecenia:


Na karcie Obszar roboczy dostępne są także opcje umożliwiające wykonanie opisanych powyżej operacji:

  • Ładuje projekt i wyświetla jego nazwę na pasku narzędzi Projekty (znajdującym się w prawym, skrajnym rogu okna roboczego programu).
  • 7.3. Praca z projektami

    Otwieranie projektu

    Istnieje kilka sposobów otwierania projektów:

    • Użyj polecenia Otwórz projekt, dostępnego z zakładki Projekty w menu głównym i pasku narzędzi, aby przejść do wcześniej utworzonego pliku projektu (na przykład MójProjekt.Rproj).
    • Wybór projektu z listy ostatnio edytowanych projektów (opcja dostępna także z zakładki Projekty w menu głównym oraz z paska narzędzi).
    • Kliknij dwukrotnie plik skrótu projektu (patrz wyżej).

    Po otwarciu projektu w RStudio wykonywane są następujące czynności:

    • Rozpoczyna się nowa sesja R;
    • Wykonywane są polecenia z pliku usługi.Rprofile (jeśli taki znajduje się w głównym folderze projektu);
    • Plik .Rhistory jest ładowany z folderu projektu do panelu Historia i służy do nawigacji po wcześniej wykonanych poleceniach;
    • Katalog projektu staje się katalogiem roboczym R;
    • Wcześniej edytowane skrypty z kodem R są otwierane w Edytorze kodu.
    • Spowoduje to zresetowanie innych ustawień RStudio (takich jak aktywne zakładki, stan separatora okien itp.) do stanu, w jakim znajdowały się przed wcześniejszym zamknięciem projektu.

    Wyjdź z projektu

    Kiedy wybierzesz polecenie Zakończ R w sekcji Plik w menu głównym, polecenie Zamknij projekt z paska narzędzi Projektu lub po prostu otwórz nowy projekt, dzieje się co następuje:

    • Pliki .RData i/lub .Rhistory zapisywane są do folderu projektu (jeśli wymagają tego aktualne ustawienia programu);
    • Lista skryptów zawartych w projekcie jest zapisywana, dzięki czemu możesz je otworzyć następnym razem;
    • Inne ustawienia RStudio zostaną zapisane (patrz wyżej);
    • Bieżąca sesja R kończy się.

    Praca z wieloma projektami jednocześnie

    Możesz pracować nad wieloma projektami jednocześnie, po prostu uruchamiając odpowiednią liczbę kopii RStudio. Można to zrobić na dwa sposoby:

    • Skorzystaj z polecenia Otwórz projekt w nowym oknie, znajdującego się w sekcji Projekt w menu głównym.
    • Otwórz wiele projektów z przeglądarki plików, klikając odpowiednie skróty.
    Konfigurowanie projektów

    Istnieje kilka opcji dostosowywania zachowania każdego konkretnego projektu w RStudio. Opcje te są dostępne za pomocą polecenia Opcje projektu z sekcji Projekt głównego menu programu:


    Zakładka Ogólne (Ogólny): Za pomocą tej zakładki możesz zmienić globalne ustawienia zachowania projektów. Jeśli nie musisz ich zmieniać, pozostaw je w ustawieniach domyślnych. Dostępne są następujące opcje:
    • Przywróć plik .RData do obszaru roboczego przy uruchomieniu — ładuje plik .RData (jeśli istnieje) z oryginalnego katalogu roboczego R. Jeśli plik .RData jest duży, lepiej wybrać „Nie” dla tej opcji. Znacząco skróci to czas uruchamiania programu.
    • Zapisz obszar roboczy do .RData przy wyjściu - zapisanie obszaru roboczego jako pliku .RData przy wyjściu z programu. Możliwe opcje: „Domyślne” (używane są ustawienia globalne), „Tak”, „Nie” i „Zapytaj”. Pamiętaj, że jeśli obszar roboczy nie został zmodyfikowany, nie pojawi się monit o zapisanie zmian, nawet jeśli jest ustawiony na „Pytaj”.
    • Zawsze zapisuj historię (nawet jeśli nie zapisujesz .RData) - umożliwia utworzenie pliku .Rhistory z zawsze zapisaną historią poleceń, nawet jeśli nie zdecydujesz się na zapisywanie pliku .RData przy wyjściu z programu.
    Zakładka Edycja(Redagowanie):
    • Indeksuj pliki źródłowe R - pozwala upewnić się, że skrypty z kodem R z konkretnego projektu są indeksowane w celu nawigacji po kodzie (patrz wyżej). Zwykle ta opcja powinna być włączona, ale jeśli w folderze projektu znajdują się „tysiące” plików, można tę opcję wyłączyć, aby uniknąć spowolnienia programu.
    • Wstaw spacje dla tabulatora - ustawia działanie klawisza Tab, tj. ile spacji powinno pojawić się po naciśnięciu.
    • Kodowanie tekstu - ustawia kodowanie tekstu w plikach skryptów. Pliki, które nie są poprawnie zakodowane, można nadal otworzyć i poprawnie rozpoznać, korzystając z polecenia Otwórz ponownie z kodowaniem z menu Plik.
    Zakładka Kontrola wersji(Kontrola wersji):
    • System kontroli wersji - pozwala określić system, który będzie używany do kontroli wersji. RStudio automatycznie wykrywa, czy dostępna jest kontrola wersji, skanując folder .git lub .svn. W związku z tym lepiej nie zmieniać tego ustawienia. Przyczyny wprowadzenia zmian mogą być następujące:
    1. Projekt zawiera zarówno folder .git, jak i .svn, a Ty chcesz określić, który system sterowania powinien być używany.
    2. Projekt nie jest powiązany z żadnym systemem kontroli wersji i chcesz dodać repozytorium logiczne git (odpowiednik uruchomienia git init z folderu głównego projektu).
    • Origin - wyświetla źródło systemu kontroli wersji.

    Uruchamianie skryptów języka R w trybie osadzonym zapewnia następujące możliwości:

    • umożliwia użytkownikom języka R uruchamianie istniejących skryptów R standardowe aplikacje R i aplikacje korzystające z SQL
    • Skrypty R są uruchamiane „obok” danych. Skrypty te mogą zawierać zarówno pakiety standardowe, jak i rozszerzone z repozytorium CRAN
    • praca w systemie DBMS pozwala na użycie równoległości kontrolowanej przez użytkownika lub kontrolowanej przez DBMS

    Ten tryb jest bardzo elastyczny i można go dodatkowo optymalizować poprzez przezroczyste przepisywanie funkcji R w funkcjach silnika Oracle DBMS.

    Wykorzystując generację XML w Embed R-SQL API, możesz tworzyć wykresy w R i osadzać wyniki swojej pracy w panelach OBIEE i dokumentach Publisher.

    Funkcje do uruchamiania Embedded R ze standardowego środowiska R

    Oracle opracowało w pakiecie ORE kilka funkcji, które pozwalają pobrać gotowy skrypt i przesłać go do DBMS w celu wykonania.

    Interfejs R dla Embedded R umożliwia nie tylko uruchamianie skryptów R bliżej bazy danych, ale także interaktywne testowanie ich przed osadzeniem w interfejsie SQL.

    Interfejs R dla Embedded R składa się z następującego zestawu funkcji (każda przydatna w innej sytuacji):

    ruda.doEval() Uruchamia przekazany skrypt R w bazie danych i nie pozwala na przekazywanie danych wejściowych ani parametrów. Po prostu zwraca obiekt ore.frame lub serializowany obiekt R
    ore.tableApply() Otrzymuje jako dane wejściowe tabelę (ore.frame), która w całości jest przekazywana na wejście funkcji. Podobnie jak doEval() może zwrócić ramkę rudy lub serializowany obiekt R
    ore.rowApply() Pozwala określić liczbę wierszy, z którymi funkcja będzie pracować (rozmiar porcji). Funkcja jest wywoływana równolegle przez kilka procesów, jeśli w systemie DBMS dozwolone jest uruchomienie kilku silników R. Wynikiem jest lista wyników dla każdej porcji.
    ore.groupApply() Dzieli dostarczone dane na części zgodnie z wartościami odpowiedniej kolumny, a następnie uruchamia dostarczony skrypt R dla każdej sekcji równolegle. Wynikiem jest lista wyników dla każdego z nich unikalna wartość kolumna.
    ruda.indexApply() ????
    ruda.scriptCreate() Tworzy nazwany skrypt R w repozytorium DBMS. Te nazwane duszki mogą być używane w innych skryptach R działających w trybie R Embedded
    ruda.scriptDrop() Usuwa nazwany skrypt R

    Proste przykłady z doEval

    Napiszmy prosty program w języku R. Stworzy jednowymiarową tablicę (wektor w języku R). Wektor będzie zawierał liczby od 1 do 10, następnie utworzona zostanie tabela (ramka względem R), która w pierwszej kolumnie będzie zawierała wartości z utworzonego wektora, a w drugiej kolumnie to samo wartość podzielona przez 10. W R będzie tak:

    id<- seq(10)
    ramka1<- data.frame(id = id, res = id / 10)

    Efektem pracy będzie

    ORE>ramka 1
    id rez
    1 1 0.1
    2 2 0.2
    3 3 0.3
    4 4 0.4
    5 5 0.5
    6 6 0.6
    7 7 0.7
    8 8 0.8
    9 9 0.9
    10 10 1.0

    Teraz zawińmy to wszystko w funkcję i wywołajmy w doEval:

    ramka1<- ore.doEval(
    funkcja (liczba = 10, skala = 10)
    {
    id<- seq(num)
    data.frame(id = id, res = id / skala)
    }
    )

    Wynik będzie taki sam, ale funkcja zostanie uruchomiona po stronie serwera. W tym samym czasie po stronie serwera uruchamiany jest zwykły R, który w rzeczywistości nic nie wie o Oracle.

    W poprzednim przykładzie wykorzystaliśmy wygenerowane dane. To nie jest zbyt interesujące. W tym przykładzie zobaczymy, jak załadować dane z Oracle. Odbywa się to za pomocą pakietu ORE. Następnie zastosujemy regresję liniową, aby dokonać prognoz. Gdybyśmy uruchamiali skrypt po stronie środowiska R, wyglądałoby to tak:

    biblioteka (ORE)
    dat<- ore.pull(ONTIME_S)
    mod<- lm(ARRDELAY ~ DISTANCE + DEPDELAY, dat)

    Zawijamy go w funkcję i przekazujemy do doEval jako dane wejściowe:

    mod<- ore.doEval(
    funkcjonować()
    {
    biblioteka (ORE)
    ore.connect (user="RUSER", sid="orcl", host="aryndin-ru", hasło="oracle",all=TRUE)
    dat<- ore.pull(ONTIME_S)
    lm(OPÓŹNIENIE ARRD ~ ODLEGŁOŚĆ + OPÓŹNIENIE DEPD, dat)
    });
    mod_lokalny<-ore.pull(mod)

    Używanie ore.tableApply

    Funkcja tableApply jest zwykle używana, jeśli potrzebujemy zbudować model na całej ilości danych.

    Weźmy przykład wykorzystujący model regresji GLM. W zwykłym R wyglądałoby to tak:

    ore.connect (user="RUSER", sid="orcl", host="aryndin-ru", hasło="oracle",all=TRUE)
    X<- ore.pull(ONTIME_S[,c("ARRDELAY","DISTANCE","DEPDELAY")])
    mod<- glm(ARRDELAY ~ DISTANCE + DEPDELAY, data=x, family=gaussian())

    Nasza akcja polega na połączeniu się z bazą danych (ore.connect) i pobraniu kolumn „ARRDELAY”, „DISTANCE”, „DEPDELAY” z tabeli ONTIME_S. Następnie po prostu wywołujemy algorytm modelu regresji GLM z funkcją Gaussa.

    W przypadku Oracle R Enterprise część wartości (tabelę i funkcję) przekażemy poprzez parametry:

    modCoef<- ore.tableApply(
    ONTIME_S[,c("ARRDOPÓŹNIENIE","DYSTANS","DEPDOPÓŹNIENIE")],
    rodzina=gaussian(),
    funkcja(x, rodzina) (
    mod<- glm(ARRDELAY ~ DISTANCE + DEPDELAY,
    dane=x, rodzina=rodzina)
    });

    Dowiedzmy się, co się dzieje. Przede wszystkim wybieramy 3 kolumny, które zostaną dostarczone jako dane wejściowe algorytmu (ONTIME_S[,c("ARRDELAY","DISTANCE","DEPDELAY")]). Zostaną one przekazane do funkcji jako parametr X. Określamy także funkcję Gaussa. Wszystko inne pozostaje takie samo.

    Używanie ore.rowApply

    Funkcja rowApply jest przydatna, jeśli wcześniej zbudowany model wymaga zastosowania do zbioru danych (scoring). W tym przypadku nie musimy wciągać do pamięci całej ilości danych, ale możemy po prostu przeprowadzić przetwarzanie wiersz po wierszu.

    Poniżej znajduje się dość prosty przykład regresji liniowej. Najpierw budujemy model przewidywania kolumny ARRDELAY na podstawie danych za 5 miesiąc.

    na czas<- ore.pull(ONTIME_S)
    mod<- lm(ARRDELAY ~ DISTANCE + DEPDELAY, data=ontime)

    Następnie tworzymy nową ramkę danych z dodatkową kolumną PRED_DELAY, która jest wypełniana wiersz po rzędzie (1000 wierszy na raz) aplikacji wcześniej zbudowanego modelu:

    ONTIME_S2<- ONTIME[,c("ARRDELAY","DEPDELAY","DISTANCE")]
    ONTIME_S2$PRED_DELAY<- 0
    rez<- ore.rowApply(ONTIME,
    mod = mod,
    funkcja(dat,mod) cbind(dat, przewidywanie(mod, dat)),
    FUN.VALUE = ONTIME_S2, wiersze = 1000)

    Używając ore.groupApply

    Funkcja groupApply jest używana, jeśli chcesz zbudować kilka modeli danych tego samego typu. a każdy model budowany jest równolegle z innymi, ale według własnej grupy danych.

    Poniżej znajduje się przykład użycia groupApply do zbudowania wielu modeli. Każdy model będzie odpowiedzialny za własne lotnisko (INDEX=ONTIME_S$DEST):

    lista modów<- ore.groupApply(
    ONTIME_S,
    INDEKS=ONTIME_S$DEST,
    funkcja(dane) (
    biblioteka (biglm)
    biglm(OPÓŹNIENIE ARRD ~ ODLEGŁOŚĆ + OPÓŹNIENIE DEPD, dat)
    });
    modList_local<- ore.pull(modList)
    podsumowanie(modList_local$BOS) ## zwróć model dla BOS

    Ciekawy przykład wykorzystania ORE do renderowania grafiki

    To polecenie pozwala nam uruchomić funkcję R w celu wygenerowania dokumentu PDF z wykresem po stronie serwera bazy danych Oracle

    ore.doEval(funkcja () (
    pdf(“c:/temp/mój_plik.pdf”)
    zestaw.nasion(25)
    X<- rchisq(1000, df = 3)
    ## Porównaj dane z rozkładem modelu
    qqplot(x, qchisq(ppunkty(x), df = 3));
    abline(0,1, col = 2, lty = 2)
    hist(x, freq = FAŁSZ, ylim = c(0, 0,25))
    krzywa(dchisq(x, df = 3), col = 2, lty = 2,
    lwd = 2, dodaj = PRAWDA)
    dev.off()
    PRAWDA))

    Zostanie wygenerowany następujący dokument PDF:

    Wniosek

    Oracle R Enterprise umożliwia uruchamianie gotowych skryptów R po stronie serwera bazy danych bez ich jakiejkolwiek zmiany. Jest to bardzo przydatne w następujących przypadkach:

    • Komputer użytkownika ma mniej pamięci niż serwer. Zasadniczo pozwala to na uruchamianie skryptów R na znacznie większej ilości danych.
    • Konieczne jest wykorzystanie wbudowanej równoległości bazy danych w celu poprawy szybkości R.
    • Należy wykluczyć pobieranie danych po stronie klienta (ze względów bezpieczeństwa lub ze względu na powolność kanału między użytkownikiem a bazą danych).

    Jedyną rzeczą, która nie podobała mi się w korzystaniu z funkcji ore*Apply, była słaba dokumentacja, ale myślę, że zostanie to naprawione.

    Kiedyś natrafiłem na zadanie, w którym musiałem w kilku etapach przekonwertować 800 000 linii tekstu. Większość tych problemów rozwiązuję za pomocą R, więc w tym przypadku zacząłem próbować użyć znanego mi języka. Jeśli kilka pierwszych transformacji trwało sekundy, to kolejne zaczynały trwać dziesiątki minut.

    Ta sytuacja zupełnie mi nie odpowiadała. Jeśli trzeba było dokonać zmian w danych na wejściu sekwencji operacji, trzeba było czekać bardzo długo. Nie był to jednak ostateczny wynik obliczeń. W tym momencie postanowiłem spróbować podnieść R w chmurze i tam rozwiązać problem. Zobaczmy, co z tego wynikło.

    Antosha wniósł nieoceniony wkład w powstanie tego wpisu. Bez tego spędziłbym dużo czasu na wyborze systemu operacyjnego i instalowaniu na nim programów.

    Jak utworzyć maszynę wirtualną (instancję) w Google Cloud Platform

    Pierwszym krokiem jest utworzenie maszyny wirtualnej w Google Cloud Platform. Wybór z listy dostępnych maszyn jest dość trudny, jeśli nie znasz parametrów technicznych niezbędnych do rozwiązania Twojego problemu. Zacząłem więc od najsłabszej opcji – f1-micro, która jest dostępna bezpłatnie dla regionu USA. Ty też możesz zacząć od tego.

    Po wybraniu typu instancji i włączeniu dla niej rozliczeń. Aby utworzyć instancję, przejdź ze swojego projektu do Google Developers Console i otwórz Google Cloud Platform:

    Na stronie, która się otworzy, ustaw parametry samochodu, który chcesz otrzymać. Podałem f1-micro w regionie us-central1-a z systemem operacyjnym Ubuntu 16.04 LTS. Zaznaczyłem także dwa pola Zezwalaj na ruch HTTP i Zezwalaj ruchowi HTTPS na interakcję z serwerem poprzez HTTP i HTTPS. Nie dotykałem innych parametrów:

    Więcej informacji na temat uruchamiania instancji znajdziesz w pomocy.

    Jak zainstalować R i R Studio w instancji Google Cloud

    Aby rozpocząć instalację potrzebnych programów, połącz się z utworzoną maszyną poprzez SSH (protokół sieciowy Secure Shell). W tym celu należy kliknąć odpowiedni przycisk obok nazwy swojego konta.

    Uruchom polecenie:

    Sudo vim /etc/apt/sources.list

    Deb https://cran.rstudio.com/bin/linux/ubuntu xenial/

    Następnie naciśnij Esc, dwukropek (pamiętaj, że potrzebny jest dwukropek, a nie średnik) i wykonaj polecenie wq. W rezultacie w pliku /etc/apt/sources.list wskażesz, skąd musisz pobrać pliki, aby zainstalować R. Będziemy instalować serwer RStudio, a nie zwykłą wersję desktopową.

    Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 sudo apt update sudo apt-get install r-base sudo apt-get install gdebi-core wget https://download2.rstudio.org/rstudio -server-1.0.136-amd64.deb sudo gdebi rstudio-server-1.0.136-amd64.deb

    W trakcie tego procesu będziesz musiał kilkakrotnie potwierdzić, że jesteś gotowy do zainstalowania oprogramowania. Po uruchomieniu wszystkich tych poleceń musisz określić port, po uzyskaniu dostępu uzyskasz dostęp do R Studio. Aby to zrobić, uruchom polecenie:

    Sudo vim /etc/rstudio/rserver.conf

    W otwartym pliku wstaw linię:

    port www=80

    Naciśnij Esc, dwukropek i wykonaj polecenie wq. Za pomocą tej linii określasz, że podczas uzyskiwania dostępu do domyślnego portu 80 powinno zostać uruchomione R Studio. Następnie uruchom polecenie:

    Sudo passwd nazwa_użytkownika

    Zamiast nazwa_użytkownika powinieneś podać swoją nazwę użytkownika. Można go znaleźć tutaj:

    Spowoduje to ustawienie hasła dla użytkownika Ubuntu, które stanie się hasłem podczas logowania do R Studio.

    Ponowne uruchomienie usługi Sudo rstudio-server

    Hurra, udało Ci się zainstalować R i R Studio w Google Cloud. Wróć do swojego projektu w Google Cloud Platform i przejdź do adresu IP podanego obok nazwy Twojej instancji:

    Wprowadź nazwę użytkownika i hasło ustawione w jednym z poprzednich kroków. Kliknij przycisk logowania, a otworzy się znajomy interfejs R Studio:

    Jak zainstalować pakiety R w chmurze

    Aby rozwiązać niektóre problemy, będziesz musiał zainstalować dodatkowe pakiety, których nie ma w podstawowej wersji R. Pojawiają się tutaj dwa problemy. Po pierwsze, instancja f1-micro nie ma pamięci RAM. Podczas instalacji R zalecana jest maszyna z co najmniej 1 GB RAM-u, a nasza instancja ma 0,6 GB.

    Aby rozwiązać ten problem podczas instalowania wszystkich pakietów, możesz ulepszyć swoją instancję. Będziesz musiał zatrzymać działanie maszyny wirtualnej - nie możesz zmieniać jej parametrów podczas jej działania. Aby to zrobić, naciśnij przycisk stop i poczekaj, aż maszyna przestanie działać:

    Po wykonaniu tej samej procedury po zainstalowaniu wszystkich niezbędnych pakietów, możesz ponownie wybrać f1-micro, jeśli jest to wystarczające do Twoich zadań. Jeśli od razu chcesz wypróbować mocniejszy samochód, wybierz dostępne opcje z listy.

    Drugim problemem podczas instalacji pakietów jest brak bibliotek niezbędnych do działania pakietów na naszej maszynie. Zobaczysz komunikat w tej sprawie w konsoli R Studio. Wskaże nazwę zalecanej biblioteki, która rozwiąże problem z instalacją pakietu.

    Skopiuj nazwę pakietu z R Studio, połącz się z instancją przez SSH i wprowadź następującą komendę:

    Sudo apt install nazwa_biblioteki

    Tutaj nazwa_biblioteki to nazwa biblioteki skopiowana z R Studio.

    Co się w rezultacie stało

    Po zainstalowaniu R i R Studio próbowałem rozwiązać mój problem na f1-micro. Ukończenie wszystkich transformacji zajęło 2 godziny. Jest jeszcze gorzej niż na moim komputerze :) Zadanie wymagało większej mocy procesora, więc zaktualizowałem instancję do n1-highcpu-2. Następnie wykonanie wszystkich transformacji zajęło około 10 minut. Komputer lokalny jest nadal znacznie gorszy od serwera.

    Ceny za korzystanie z maszyn w Google Cloud są bardzo przystępne. Kilka godzin pracy z różnymi instancjami kosztowało mnie aż 4 grosze. Ponadto nowym użytkownikom Google daje 300 dolarów na 12 miesięcy. Możesz np. używać tego samego n1-highcpu-2 bez przerwy przez 8 miesięcy lub używać maszyny z 8 vCPU i 52 GB RAM przez miesiąc. Powodzenia w pracy w chmurze.



    Jeśli zauważysz błąd, zaznacz fragment tekstu i naciśnij Ctrl+Enter
    UDZIAŁ: