Statystyka, prognozowanie, ekonometria, data mining
Reklama analizy statystyczne, statystyka, analiza wyników badań
Statystyka, prognozowanie, ekonometria, data mining
Forum miłośników statystyki - Statystycy całego Świata - Łączcie się :-)

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  Programy statystyczneProgramy statystyczne  DownloadDownload
 Ogłoszenie 
Zanim napiszesz posta zapoznaj się z regulaminem forum Zalecamy korzystać z TEX'a przy pisaniu wzorów Zlot użytkowników R - WZUR 3.0

Poprzedni temat «» Następny temat
[R] Wstrzymanie działania programu
Autor Wiadomość
Emiel Regis 
Szeregowy


Wiek: 24
Posty: 3
Skąd: Kraków
Wysłany: 2010-02-02, 17:30   [R] Wstrzymanie działania programu

Witam serdecznie wszystkich użytkowników R.

Chciałbym zapytać, jakie jest polecenie w R które wstrzymuje działanie programu?

Czyli umieszczam w pliku 'abc.r' w pewnych miejscach taką komendę, że uruchamiając potem source("abc.r") program będzie się zatrzymywał w tych miejscach i czekał na wciśniecie klawisza enter.

Właśnie kończę lekturę bardzo dobrej książki "Przewodnik po pakiecie R" i niestety nic takiego tutaj nie znalazłem, a jest to przydatna funkcja.
Tak teraz myślę, że można by wpisać scan("", nmax=1) ale jakoś mało elegancko to wygląda.
Ostatnio zmieniony przez mathkit 2010-02-08, 09:25, w całości zmieniany 1 raz  
 
     
Google

Wysłany:    Reklama google.

 
 
bulva 
Chorąży


Pomógł: 5 razy
Posty: 172
Skąd: Zgierz
Wysłany: 2010-02-03, 08:36   

Daj może po prostu coś takieg w skrypcie
Kod:
if (...) q()
Jeżeli chcesz przerwać wykonywanie funkcji to np

Kod:
   if (...)

  {

       stop("wysypałem sie :(")

   }
 
     
Emiel Regis 
Szeregowy


Wiek: 24
Posty: 3
Skąd: Kraków
Wysłany: 2010-02-03, 10:51   

Dzięki za chęci pomocy choć nie o to mi chodziło; )

Tak jak napisałem wyżej nie chcę kończyć programu tylko go chwilowo wstrzymać. Np mam skrypt co wypisuje 10 macierzy kontyngencji i nie chcę żeby one śmignęły użytkownikowi przed oczami, a potem żeby on musiał ręcznie pasek przewijać żeby je obejrzeć. Chce po każdej macierzy dać komendę wstrzymującą program i czekającą na enter.

Jak ktoś zna c++ to szukam ekwiwalentu system("PAUSE").


[edit]
Właśnie znalazłem to o co mi chodziło: )
Być może ktoś będzie jeszcze potrzebował więc napiszę. Takie dwa polecenia ładnie wstrzymują program:

readline(prompt = "Pause. Press <Enter> to continue...")
pause()

Są one w bibliotece DAAG.
Ostatnio zmieniony przez Emiel Regis 2010-02-04, 15:04, w całości zmieniany 1 raz  
 
     
Crunchy 
Porucznik
Crunchy


Pomógł: 38 razy
Posty: 484
Skąd: Katowice
Wysłany: 2010-02-03, 14:37   

Moim zdaniem, niepotrzebne... zawsze możesz skłonić R do pokazania macierzy przez odwołanie się do niej, albo po prostu wydrukowanie całej sesji i przeglądanie jej w pdf'ie.
Ale do takich obliczeń (na macierzach) raczej Octave będzie lepszym wyborem.
 
     
Emiel Regis 
Szeregowy


Wiek: 24
Posty: 3
Skąd: Kraków
Wysłany: 2010-02-03, 15:41   

A da się w jakiś prosty sposób zapisać całą sesję do pdfa? Czytałem o pakiecie Sweave ale niestety nie działa mi tam wszystko tak jak powinno. W samym R jest wszystko w porządku, ale później TexnicCenter nie widzi bibliotek.
 
     
Crunchy 
Porucznik
Crunchy


Pomógł: 38 razy
Posty: 484
Skąd: Katowice
Wysłany: 2010-02-05, 21:01   

Emiel Regis napisał/a:
A da się w jakiś prosty sposób zapisać całą sesję do pdfa?

W R da się wywołać np. kod C, ale pod Windowsem mi się to jakoś nie udało skompilować... Co mnie raczej raczej nie dziwi, znając swoje zdolności programistyczne :lol:
Ale może ktoś inny to ruszy...
Kod:
#include <R.h>
#include <cstdlib.h>
void stop()
{
Rprintf("Naciśnij dowolny klawisz, aby kontynuować... \n");
system ("pause");
return 0;
}


print.png
Plik ściągnięto 397 raz(y) 3,73 KB

 
     
mbojanowski 
Szeregowy
~


Pomógł: 2 razy
Posty: 11
Skąd: Warszawa
Wysłany: 2010-02-07, 23:13   

Emiel Regis napisał/a:
Dzięki za chęci pomocy choć nie o to mi chodziło; )

Tak jak napisałem wyżej nie chcę kończyć programu tylko go chwilowo wstrzymać. Np mam skrypt co wypisuje 10 macierzy kontyngencji i nie chcę żeby one śmignęły użytkownikowi przed oczami, a potem żeby on musiał ręcznie pasek przewijać żeby je obejrzeć. Chce po każdej macierzy dać komendę wstrzymującą program i czekającą na enter.

Jak ktoś zna c++ to szukam ekwiwalentu system("PAUSE").


[edit]
Właśnie znalazłem to o co mi chodziło: )
Być może ktoś będzie jeszcze potrzebował więc napiszę. Takie dwa polecenia ładnie wstrzymują program:

readline(prompt = "Pause. Press <Enter> to continue...")
pause()

Są one w bibliotece DAAG.



Gwoli ścisłości to 'readline' jest w 'base' a nie w DAAG.

Co do samego problemu, to wydaje mi się, że powstawianie readline() to tu to tam tylko po to, żeby użytkownik mógł sobie popatrzeć na jakieś cząstkowe wyniki nie jest chyba najwygodniejsze. Gdy napiszesz w skrypcie żeby wydrukował jakąś macierz i dasz potem readline to owszem, będzie można ją obejrzeć, ale nie ma żadnej możliwości dalszej interakcji: np. szybkiego policzenia czegoś na niej, zrobienia wykresu etc.

Wydaje mi się, że dużo lepsza praktyką jest popakowanie analiz w funkcje w taki sposób, żeby zwracały np listy, które w swych komponentach zawierają jakieś pośrednie wyniki. Wtedy można się nimi zabawiać dowoli.

Jeżeli z kolei to ma być sposób na debugowanie skryptu, to zdecydowanie polecam browser, trace i pochodne.
 
 
     
bulva 
Chorąży


Pomógł: 5 razy
Posty: 172
Skąd: Zgierz
Wysłany: 2010-02-08, 15:48   

Teraz przyszło mi do głowy że możesz użyć polecenia browser(), wstawiasz je po prostu gdziekolwiek w kodzie, jak wywołasz funkcje to ona się tam zatrzyma, wciśniesz enter i poleci dalej - takie jakby debug-owanie:

Kod:
funk = function ()
{
  x <- rnorm(10)
  browser()
  x
}
funk()


Wypróbuj czy o to chodziło
--------------------------------------
Spóźniłem się :)

--------------------------------------------------------------
Kod C wywołany w R:

http://blog.revolution-co...-with-ease.html
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych zakładek(IE)
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
salon fryzjerski warszawa |mieszkania w suwałkach | Ogłoszenia Podlasie | implanty | Bukmacherzy | Liga Polska | numizmatyka | Typy bukmacherskie | betterware | bilety autokarowe | wynajem agregatów prądotwórczych | forum | portal studencki | płyty warstwowe | bronze crane statues | fotografia ślubna szczecin | alufelgi chromowane | okulary przeciwsłoneczne | rolety | hotel poznań | restauracja poznań | Ogrody Warszawa | strony internetowe olsztyn | stairlift | Patelnia elektryczna | Kosmetyki naturalne Florame | Radiografia | Nauka Jazdy Warszawa | konferansjer |
Strona wygenerowana w 0,17 sekundy. Zapytań do SQL: 12