Comment imprimez-vous à stderr
dans R
?
Cela serait particulièrement utile pour les scripts écrits dans Rscript
.
En fait ce qui suit fonctionne pour moi:
write("prints to stderr", stderr())
write("prints to stdout", stdout())
Voici une version plus flexible pour l'utilisation de débogage/verbose dans Rscript. Non seulement il affiche stderr
comme vous le demandez, mais vous permet également de passer un nombre variable d'arguments, de types, etc., comme le fait printf
.
v <- function(...) cat(sprintf(...), sep='', file=stderr())
Maintenant, on peut faire des choses comme:
v("name: %s age: %d\n", name, age)
etc.
Est-il possible de configurer la fonction d'impression Pour imprimer sur stderr?
Non, mais où la sortie standard est contrôlée par Par sink (), vous pouvez ainsi Obtenir le même effet. R en interne N'a aucune idée du résultat de Print () (qui n'est pas une fonction Mais des centaines de méthodes).
message('for writing diagnostic info to standard error')
message est utilisé pour générer des messages de diagnostic "simples" qui ne sont ni des avertissements ni des erreurs, mais qui sont néanmoins représentés comme des conditions. Contrairement aux avertissements et aux erreurs, une nouvelle ligne finale est considérée comme faisant partie du message et est facultative. Le gestionnaire par défaut envoie le message à la connexion stderr ().