103 votes

Comment enregistrer toutes les données de sortie de la console dans un fichier dans R ?

Je souhaite réorienter tous texte de la console dans un fichier. Voici ce que j'ai essayé :

> sink("test.log", type=c("output", "message"))
> a <- "a"
> a
> How come I do not see this in log
Error: unexpected symbol in "How come"

Voici ce que j'ai obtenu dans test.log :

[1] "a"

Voici ce que je veux dans test.log :

> a <- "a"
> a
[1] "a"
> How come I do not see this in log
Error: unexpected symbol in "How come"

Qu'est-ce que je fais de travers ? Merci de votre compréhension.

2voto

Ferroao Points 486

Vous pouvez imprimer un fichier et voir en même temps l'état d'avancement (ou non). screen , lors de l'exécution d'un script.

Lorsque l'écran n'est pas utilisé, utiliser R CMD BATCH yourscript.R & et l'étape 4.

  1. Lors de l'utilisation de screen, dans un terminal, démarrer screen

     screen
  2. Exécutez votre script.

     R CMD BATCH yourscript.R
  3. Passer à un autre écran en appuyant sur CtrlA alors c

  4. regarder votre résultat avec (en temps réel) :

     tail -f yourscript.Rout
  5. Passez d'un écran à l'autre avec CtrlA puis n

1voto

Pour enregistrer un texte à partir de la console : lancez l'analyse et choisissez (Windows) "File>Save to File" (Fichier>Enregistrer dans un fichier).

1voto

Alan Engel Points 56

Définissez vos préférences Rgui pour un grand nombre de lignes, puis horodatez et enregistrez sous forme de fichier à des intervalles appropriés.

1voto

Prateek Sharma Points 33
  1. Si vous voulez obtenir des messages d'erreur sauvegardés dans un fichier

    zz <- file("Errors.txt", open="wt")
    sink(zz, type="message")

    le résultat sera :

    Error in print(errr) : object 'errr' not found
    Execution halted

    Le présent le résultat sera sauvegardé dans un fichier nommé Errors.txt

  2. Si vous souhaitez imprime les valeurs de la console dans un fichier vous pouvez utiliser l'argument 'split' :

    zz <- file("console.txt", open="wt")
    sink(zz,  split=TRUE)
    print("cool")
    print(errr)

    sera le résultat :

    [1] "cool"

    dans le fichier console.txt. Ainsi, tous vos la sortie de la console sera imprimée dans un fichier nommé console.txt

-1voto

user3667133 Points 124

Il se peut que cela ne corresponde pas à vos besoins, mais une solution pourrait consister à exécuter votre code à partir d'un fichier Rmarkdown. Vous pourriez écrire le code et la sortie de la console en HTML/PDF/Word.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X