C'è un modo per fermare un programma R senza errori?Arresta un programma R senza errori
Ad esempio, ho una grande fonte, che definisce diverse funzioni e dopo di essa ci sono alcune chiamate alle funzioni. Succede che modifico alcune funzioni e voglio che le definizioni delle funzioni siano aggiornate in ambiente R, ma non vengono effettivamente chiamate.
Ho definito una variabile justUpdate
e quando è TRUE
si desidera interrompere il programma subito dopo le definizioni di funzione.
ReadInput <- function(...) ...
Analyze <- function(...) ...
WriteOutput <- function(...) ...
if (justUpdate)
stop()
# main body
x <- ReadInput()
y <- Analyze(x)
WriteOutput(y)
ho chiamato stop()
funzione, ma il problema è che esso stampa un messaggio di errore.
Ctrl +c è un'altra opzione, ma voglio fermare la fonte in linea specifica.
Il problema con q()
o quit()
è che termina la sessione R, ma mi piacerebbe avere la sessione R ancora aperta.
Come @JoshuaUlrich proposto browser()
può essere un'altra opzione, ma ancora non perfetta, perché la fonte termina in un nuovo ambiente (cioè la richiesta R cambierà a Browser[1]>
anziché >
). Ancora possiamo premere Q
per chiuderlo, ma sto cercando il modo semplice.
Un'altra opzione è utilizzare if (! justUpdate) { main body }
ma è risolvere il problema, non risolverlo.
C'è qualche opzione migliore?
Potresti approfondire ciò che stai cercando di fare, e perché? Questo può aiutarci ad aiutarti. –
@joran Non voglio chiudere tutti i messaggi di errore – Ali
O 1) inserisci le tue definizioni di funzione in un file separato (o meglio ancora, un pacchetto) dal tuo programma e inizialo dopo aver aggiornato le funzioni ; oppure 2) usa 'if (! justUpdate) {...}'. Raccomando 1). Quello che vuoi fare al momento è un modo confuso di organizzare il tuo codice. –