web-dev-qa-db-fra.com

Comment imprimez-vous sur stderr dans R?

Comment imprimez-vous à stderr dans R?

Cela serait particulièrement utile pour les scripts écrits dans Rscript.

45
Frank

En fait ce qui suit fonctionne pour moi:

write("prints to stderr", stderr())

write("prints to stdout", stdout())
50
Frank

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.

10
arielf

Est-il possible de configurer la fonction d'impression Pour imprimer sur stderr?

De Ripley lui-même :

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).

7
Galwegian
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 ().

0
De Novo