un comunicado que comprueba si algo es cierto y si no se imprime un mensaje de error dado y sale de¿Tiene R una declaración assert como en python?
79
A
Respuesta
99
11
@ Nick:
Puede controlar su mensaje de error si se escribe una función con un nombre descriptivo para probar la condición de que generará un error en su programa. He aquí un ejemplo:
Less_Than_8 = function(x) return(x < 8)
for (i in 1:10)
{
print(i)
stopifnot(Less_Than_8(i))
}
Esto imprimirá los números del 1 al 8, a continuación, imprimir un mensaje que dice
Error: Less_Than_8(i) is not TRUE
Sería bueno si la "i" entre paréntesis fue sustituido por el valor que no pasó la prueba, pero obtienes lo que pagas.
Si necesita algo más elegante que eso, mire en Runit y pruebe eso, como sugirió Harlan.
Cuestiones relacionadas
- 1. ¿Tiene R una cola de prioridad como PriorityQueue de Java?
- 2. ¿Tiene R 'dict' como en python o 'map' como en C++ do?
- 3. Ejemplo de uso de assert en Python?
- 4. Assert call to method using Mock python
- 5. Python assert: ¿mejor introspección de fallas?
- 6. Assert/VerifyElementPresent with Python and WebDriver?
- 7. ASSERT vs. ATLASSERT vs. assert
- 8. Codificación en declaración XML python
- 9. ¿Tiene R operadores de tipo cotización como Perl's qw()?
- 10. ¿Debería ser "Arrange-Assert-Act-Assert"?
- 11. Declaración vectorizada de IF en R?
- 12. Assert .NET
- 13. Assert IEnumerables
- 14. ¿Python tiene una lista inmutable?
- 15. JavaScript: IIF como declaración
- 16. ¿Los punteros siempre están configurados como nulos en la declaración?
- 17. big.matrix como data.frame en R
- 18. ¿Agregar mensajes personalizados en assert?
- 19. Python IDLE equivalente de CTRL-R en R
- 20. ¿Por qué Lua no tiene una declaración de "continuación"?
- 21. Python SQL Seleccione una declaración de una variable de lista?
- 22. Slow Scala assert
- 23. python: xml.etree.elementtree.ElemenTtree.write() declaración etiqueta
- 24. does python tiene un operador de coma como C
- 25. ¿Tiene Python algo así como clases internas anónimas de Java?
- 26. Cómo utilizar Powershell Where-Object como una declaración en
- 27. Cómo manejar una cadena larga declaración SQL en Python
- 28. ¿Scala/java tiene algo así como StringIO de python?
- 29. ¿Tiene Python algo tan robusto como el rvm de Ruby?
- 30. Interceptar JUnit Assert functions
¿Hay alguna forma de controlar el mensaje de error que se informa si se detiene stopifnot()? – Nick
@Nick, no. Use 'stopifnot()' para la prueba de validez, para probar que el código está haciendo lo que se supone que debe hacer, pero 'if (blahdiblah) stop (" error message ")' para la prueba de entrada, para probar que la entrada al programa es válido. Solo esto último debería ocurrir durante el uso normal. – Harlan
Vea también el nuevo paquete 'assertthat' de Hadley, que da mejores respuestas que' stopifnot': https://github.com/hadley/assertthat – Harlan