Cette fiche présente deux fonctions permettant d'enregistrer dans un fichier externe tout ou partie du contenu de la console de R.
La fonction capture.output()
Pour enregistrer le contenu d’une sortie R dans un fichier externe, on peut utiliser la fonction capture.output()
. Cette fonction prend comme arguments, le nom de l’objet contenant la sortie à sauvegarder, le nom du fichier extérieur (file=
).
formatR::usage(capture.output)
## capture.output(..., file = NULL, append = FALSE,
## type = c("output", "message"), split = FALSE)
On veut enregistrer le contenu d’une partie du tableau R dans le fichier iris.txt
:
data(iris)
output <- head(iris)
capture.output(output, file = "iris.txt")
# ou directement capture.output(head(iris), file='Essai.txt')
Le fichier iris.txt
contient le résultat de l’instruction, à savoir les premières lignes du tableau iris
.
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
Les objets à capturer peuvent être plus compliqués; par exemple les sorties de fonctions statistiques:
iris.lm <- lm(Sepal.Length ~ Species, data = iris)
capture.output(iris.lm, file = "Anova.txt")
On obtient un fichier Anova.txt
qui contient:
Call:
lm(formula = Sepal.Length ~ Species, data = iris)
Coefficients:
(Intercept) Speciesversicolor Speciesvirginica
5.006 0.930 1.582
On peut compléter le contenu de ce fichier en utilisant l’argument append=TRUE
:
output <- summary(iris.lm)
capture.output(output, file = "Anova.txt", append = TRUE)
Le fichier Anova.txt
contient maintenant les 2 sorties affichées par les fonctions print()
et summary()
Call:
lm(formula = Sepal.Length ~ Species, data = iris)
Coefficients:
(Intercept) Speciesversicolor Speciesvirginica
5.006 0.930 1.582
Call:
lm(formula = Sepal.Length ~ Species, data = iris)
Residuals:
Min 1Q Median 3Q Max
-1.6880 -0.3285 -0.0060 0.3120 1.3120
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.0060 0.0728 68.762 < 2e-16 ***
Speciesversicolor 0.9300 0.1030 9.033 8.77e-16 ***
Speciesvirginica 1.5820 0.1030 15.366 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.5148 on 147 degrees of freedom
Multiple R-squared: 0.6187, Adjusted R-squared: 0.6135
F-statistic: 119.3 on 2 and 147 DF, p-value: < 2.2e-16
La fonction sink()
La fonction sink()
redirige l’affichage de la console R vers un fichier.
formatR::usage(sink)
## sink(file = NULL, append = FALSE, type = c("output", "message"),
## split = FALSE)
Exemple:
data(iris)
sink(file = "Console.txt")
head(iris)
iris.lm <- lm(Sepal.Length ~ Species, data = iris)
iris.lm
summary(iris.lm)
sink()
On obtient le fichier suivant.
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
Call:
lm(formula = Sepal.Length ~ Species, data = iris)
Coefficients:
(Intercept) Speciesversicolor Speciesvirginica
5.006 0.930 1.582
Call:
lm(formula = Sepal.Length ~ Species, data = iris)
Residuals:
Min 1Q Median 3Q Max
-1.6880 -0.3285 -0.0060 0.3120 1.3120
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.0060 0.0728 68.762 < 2e-16 ***
Speciesversicolor 0.9300 0.1030 9.033 8.77e-16 ***
Speciesvirginica 1.5820 0.1030 15.366 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.5148 on 147 degrees of freedom
Multiple R-squared: 0.6187, Adjusted R-squared: 0.6135
F-statistic: 119.3 on 2 and 147 DF, p-value: < 2.2e-16
Comme les sorties sont redirigées vers un fichier, on ne les visualise plus dans la console de R.