una dichiarazione che controlla se una cosa è vera e se non stampa un messaggio di errore dato ed esceR ha un'asserzione come in python?
79
A
risposta
99
11
@ Nick:
È possibile controllare il messaggio di errore se si scrive una funzione con un nome descrittivo per testare la condizione che genera un errore nel programma. Ecco un esempio:
Less_Than_8 = function(x) return(x < 8)
for (i in 1:10)
{
print(i)
stopifnot(Less_Than_8(i))
}
Questo stamperà i numeri da 1 a 8, quindi stampare un messaggio che dice
Error: Less_Than_8(i) is not TRUE
Sarebbe bello se la "i" tra parentesi è stato sostituito con il valore che fallito il test, ma ottieni quello per cui paghi.
Se hai bisogno di qualcosa di più bello di quello, guarda in Runit e prova quello che Harlan ha suggerito.
Problemi correlati
- 1. R ha la funzione startswith o endswith come python?
- 2. Come implementare R p.adjust in Python
- 3. Python ha una libreria simile come quantmod in R che può scaricare i dati del bilancio?
- 4. R ha una coda di priorità come PriorityQueue di Java?
- 5. Semplice per loop in R che produce "sostituzione ha lunghezza zero" in R
- 6. Python ha metodi generici?
- 7. Equivalente di source() di R in Python
- 8. My R ha perdite di memoria?
- 9. Python ha sincronizzazione?
- 10. Perché python ha os.path.curdir
- 11. Insidie in programmatori R per Python
- 12. L'equivalente read.table di R in Python
- 13. come convertire questa linea confuso di Python in R
- 14. Codifica in R come Python ("ord" e "chr")
- 15. Server WebSocket in Python: l'oggetto 'module' non ha attributo 'AF_INET'
- 16. Python ha una funzione "o uguale a" come || = in Ruby?
- 17. python ha il suo messaggio di errore come $! in perl
- 18. R ha un equivalente di "repr" di Python (o "prin1-to-string" di Lisp)?
- 19. Timezone Python - pytz.common_timezones ha troppe
- 20. Questa espressione Python ha senso?
- 21. Python: l'istanza non ha attributo
- 22. python ha operatori di conversione?
- 23. Equivalente Python di mclapply di R()
- 24. Python non riesce ad aprire 11gb csv in modalità r + ma si apre in modalità r
- 25. Python sottoprocesso "oggetto non ha attributo 'Fileno'" errore
- 26. Alternativa di Python a R Markdown
- 27. Esiste un Python equivalente alla funzione smooth.spline in R
- 28. call python con system() in R per eseguire uno script python che emula la console python
- 29. Come utilizzare os.umask() in Python
- 30. Analisi immagine in R
C'è un modo per controllare il messaggio di errore che viene segnalato se stopifnot() si arresta? – Nick
@Nick, no. Usa 'stopifnot()' per i test di validità, per verificare che il codice stia facendo quello che dovrebbe fare, ma 'if (blahdiblah) si ferma (" messaggio di errore ")' per test di input, per verificare che l'input per il programma sia valido. Solo quest'ultimo dovrebbe mai accadere durante il normale utilizzo. – Harlan
Vedere anche il nuovo pacchetto 'assertthat' di Hadley, che fornisce risposte migliori di quelle di" stopifnot': https://github.com/hadley/assertthat – Harlan