Statystyka, prognozowanie, ekonometria, data mining Strona Główna
Reklama pqstat.pl
Statystyka, prognozowanie, ekonometria, data mining
Forum miłośników statystyki - Portal Statystyczny

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  Chat   Regulamin  Kadra forum
PORTAL STATYSTYCZNY
 Ogłoszenie 
FORUM STATYSTYCZNE MA JUŻ 10 LAT

Znasz statystykę lub ekonometrię, metody prognozowania, data mining i chcesz pomóc w rozwoju forum statystycznego ?
Pisz na: administrator(małpa)statystycy.pl

Rozpoczął swoją działalność portal statystyczny - masz pomysł na jego rozwój ?

Drogi forumowiczu! Zanim napiszesz posta zapoznaj się z regulaminem forum i przedstaw się
The International Year of Statistics (Statistics2013) Smarter Poland Portal statystyczny

Poprzedni temat «» Następny temat

Tagi tematu: Brak tagów.

Przesunięty przez: mathkit
2015-03-23, 16:03
[R] Wstrzymanie działania programu
Autor Wiadomość
Emiel Regis 
Szeregowy


Wiek: 32
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 
Podporucznik


Pomógł: 6 razy
Posty: 205
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: 32
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 
Major
Crunchy


Pomógł: 76 razy
Posty: 1134
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: 32
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 
Major
Crunchy


Pomógł: 76 razy
Posty: 1134
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 14530 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 
Podporucznik


Pomógł: 6 razy
Posty: 205
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
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:  

Podobne Tematy
Temat Autor Forum Odpowiedzi Ostatni post
Brak nowych postów Przyklejony: [R] Działania na wektorach (Obracanie wektora)
pajujina Biblioteki R, Pakiety R 9 2010-11-22, 23:05
pajujina
Brak nowych postów Przyklejony: moderator działu statystyka opisowa
mathkit Ogłoszenia, sprawy organizacyjne forum, regulamin 0 2010-06-22, 00:56
mathkit
Brak nowych postów Przyklejony: Studia podyplomowe z wykorzystaniem programu SAS
m.szymkowiak Ogłoszenia, sprawy organizacyjne forum, regulamin 0 2010-06-18, 07:26
m.szymkowiak
Brak nowych postów Gauss w excel - sprawdzenie działania
sprawdzenie poprawności
mecenas Teoria i rachunek prawdopodobieństwa 3 2014-11-17, 07:50
mecenas
Brak nowych postów Korelacje pomiędzy różnymi efektami działania leku
avrfun Testowanie hipotez statystycznych 0 2017-10-31, 07:18
avrfun

Ideą przyświecającą istnieniu forum statystycznego jest stworzenie możliwości wymiany informacji, poglądów i doświadczeń osób związanych ze statystyką, mierzenie się z różnego rodzaju problemami statystycznymi i aktuarialnymi. Poruszane problemy: Statystyka w badaniach sondażowych rynku, metody reprezentacyjne, Teoria i rachunek prawdopodobieństwa, statystyka opisowa, teoria estymacji, testowanie hipotez statystycznych, ekonometria, prognozowanie, metody data mining.
Copyright (C) 2006-2015 Statystycy.pl
Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0,17 sekundy. Zapytań do SQL: 25