Czy istnieje sposób zatrzymania programu R bez błędu?Zatrzymaj program R bez błędu
Na przykład mam duże źródło, definiujące kilka funkcji, a po nim niektóre wywołania funkcji. Zdarza się, że edytuję niektóre funkcje i chcę, aby definicje funkcji były aktualizowane w środowisku R, ale tak naprawdę nie są wywoływane.
Zdefiniowałem zmienną justUpdate
i kiedy jest TRUE
chcę zatrzymać program zaraz po definicjach funkcji.
ReadInput <- function(...) ...
Analyze <- function(...) ...
WriteOutput <- function(...) ...
if (justUpdate)
stop()
# main body
x <- ReadInput()
y <- Analyze(x)
WriteOutput(y)
nazwałem stop()
funkcję, ale problemem jest to, że wyświetla się komunikat o błędzie.
ctrl + c ma innej opcji, ale chcę, aby zatrzymać źródło w określonej linii.
Problem z q()
lub quit()
polega na tym, że kończy sesję R, ale chciałbym, aby sesja R była nadal otwarta.
Jak @JoshuaUlrich proponowane browser()
może być innej opcji, ale nadal nie jest idealna, ponieważ źródło kończy się w nowym otoczeniu (czyli szybka R zmieni się Browser[1]>
zamiast >
). Nadal możemy nacisnąć Q
, aby go zamknąć, ale szukam prostego sposobu.
Inną opcją jest użycie if (! justUpdate) { main body }
, ale to usuwa problem, a nie go rozwiązuje.
Czy jest jakaś lepsza opcja?
Czy możesz wyjaśnić, co próbujesz zrobić i dlaczego? To może nam pomóc. –
@joran Nie chcę wyłączać wszystkich komunikatów o błędach – Ali
Albo 1) umieść definicje funkcji w osobnym pliku (lub lepiej, pakiet) ze swojego programu i pobierz go po aktualizacji funkcji ; lub 2) użyj 'if (! justUpdate) {...}'. Polecam 1). To, co obecnie chcesz zrobić, to mylący sposób na uporządkowanie kodu. –