Modérateur : Groupe des modérateurs
Code : Tout sélectionner
#' exemples avec des figures de tailles différentes
#' syntaxe de roxygen
require(knitr)
#' les données d'abord
set.seed(123)
x <- rnorm(10)
y <- rnorm(10)
#' graphique non ajusté
#+ graph-nonajust
plot(x, y)
#' Graphique ajusté
#+ graph-ajust, fig.width = 5, fig.height = 4
plot(x, y)
Code : Tout sélectionner
essai <- spin("graphknit.R", knit = FALSE)
knit2html(essai)
Code : Tout sélectionner
#' #Analyse simple
#+ datagen, echo=FALSE, results = 'markup'
# On génère qq données
d <- data.frame(var1 = rnorm(100), var2 = rnorm(100), var3 = rnorm(100), var4 = rnorm(100))
d$y <- d$var1 + 2*d$var3 + rnorm(100)
mod <- lm(y ~ var1, data=d)
# plot des données et du modèle
plot(y~var1, data=d)
abline(mod)
# la même chose en définissant la taille de la fenêtre --> pas imprimé par knitr
dev.new(height = 4, width = 4)
plot(y~var1, data=d)
abline(mod)
dev.off()
# résultats du modèle linéaire
summary (mod)
# Plots de diagnostique du modèle
par(mfrow = c(2,2))
plot(mod)
Code : Tout sélectionner
library(knitr)
spin(hair = "loop.R" , knit = TRUE)
knit2html("loop.Rmd")
Code : Tout sélectionner
#+ datagen, echo=FALSE, results = 'markup', warning = FALSE, error = FALSE, message = FALSE
# On génère qq données
d <- data.frame(var1 = rnorm(100), var2 = rnorm(100), var3 = rnorm(100), var4 = rnorm(100))
d$y <- d$var1 + 2*d$var3 + rnorm(100)
## # Analyses dans une boucle
#+ loop1, echo=FALSE, results = 'markup', fig.width= 6, fig.height = 6
models <- as.list(vector(length = nrow(d)-1)) # liste vide pour stocker les modèles
mod <- lm(y ~ var1, data=d)
for(i in 1:3) {
models[[i]] <- update(mod, .~ d[,i])
# plot des données et du modèle
print(colnames(d)[i])
par(mfrow = c(1,1))
plot(d$y ~ d[,i], main = colnames(d)[i])
abline (models[[i]])
# resultats du modèle linéaire
print(summary(models[[i]]))
# plots de diagnostique
par(mfrow = c(2,2))
plot(models[[i]])
}
Code : Tout sélectionner
#' # Analyses dans une boucle avec results = 'asis' et stockage des graphiques sur le disque
#+ loop3, echo=FALSE, results = 'markup', warning = FALSE, error = FALSE, message = FALSE
d <- data.frame(var1 = rnorm(100), var2 = rnorm(100), var3 = rnorm(100), var4 = rnorm(100))
d$y <- d$var1 + 2*d$var3 + rnorm(100)
mod <- lm(y ~ var1, data=d)
dir.create(file.path(getwd(), "mygraphs")) # répertoire pour stocker les graphiques
models <- as.list(vector(length = nrow(d)-1)) # liste vide pour stocker les modèles
for(i in 1:3) {
models[[i]] <- update(mod, .~ d[,i])
# graphique des données et du modèle
# dev.new(width = 7/cm(1), height = 7/cm(1))
png(paste("mygraphs/",colnames(d)[i],".png",sep=""),width= 7/cm(1), height= 7/cm(1), units="in", res = 300)
par(mfrow = c(1,1))
plot(d$y ~ d[,i], main = colnames(d)[i])
abline (models[[i]])
# dev.print(device = png, filename = paste("mygraphs/",colnames(d)[i],".png",sep=""),width= 7/cm(1), height= 7/cm(1), units="in", res = 300)
dev.off()
# graphiques diagnostiques
# dev.new(width = 15/cm(1), height = 15/cm(1))
png(filename = paste("mygraphs/diag",colnames(d)[i],".png",sep=""),width= 15/cm(1), height= 15/cm(1), units="in", res = 300)
par(mfrow = c(2,2))
plot(models[[i]])
# dev.print(device = png, filename = paste("mygraphs/diag",colnames(d)[i],".png",sep=""),width= 15/cm(1), height= 15/cm(1), units="in", res = 300)
dev.off()
}
# On imprime ce qu'on veut voir dans le rapport
#+ pri, echo=FALSE, results = 'asis', warning = FALSE, error = FALSE, message = FALSE
for(i in 1:3) {
#Titre
cat(paste("\n##", colnames(d)[i]), "\n")
# graphique 1
cat(paste("![aa](mygraphs/",colnames(d)[i],".png)",sep=""))
# résultats de la régression
cat("\n\n```\n\n")
print(summary(models[[i]]))
cat("\n\n```\n\n")
# graphique 2
cat(paste("![bb](mygraphs/diag",colnames(d)[i],".png)",sep=""))
}
Code : Tout sélectionner
#' <h1>Analyses dans une boucle avec results = 'asis' et stockage des graphiques sur le disque</h1>
#+ loop3, echo=FALSE, results = 'markup', warning = FALSE, error = FALSE, message = FALSE
d <- data.frame(var1 = rnorm(100), var2 = rnorm(100), var3 = rnorm(100), var4 = rnorm(100))
d$y <- d$var1 + 2*d$var3 + rnorm(100)
mod <- lm(y ~ var1, data=d)
dir.create(file.path(getwd(), "mygraphs")) # répertoire pour stocker les graphiques
models <- as.list(vector(length = nrow(d)-1)) # liste vide pour stocker les modèles
for(i in 1:3) {
models[[i]] <- update(mod, .~ d[,i])
# graphique des données et du modèle
# dev.new(width = 7/cm(1), height = 7/cm(1))
png(paste("mygraphs/",colnames(d)[i],".png",sep=""),width= 7/cm(1), height= 7/cm(1), units="in", res = 300)
par(mfrow = c(1,1))
plot(d$y ~ d[,i], main = colnames(d)[i])
abline (models[[i]])
# dev.print(device = png, filename = paste("mygraphs/",colnames(d)[i],".png",sep=""),width= 7/cm(1), height= 7/cm(1), units="in", res = 300)
dev.off()
# graphiques diagnostiques
# dev.new(width = 15/cm(1), height = 15/cm(1))
png(filename = paste("mygraphs/diag",colnames(d)[i],".png",sep=""),width= 15/cm(1), height= 15/cm(1), units="in", res = 300)
par(mfrow = c(2,2))
plot(models[[i]])
# dev.print(device = png, filename = paste("mygraphs/diag",colnames(d)[i],".png",sep=""),width= 15/cm(1), height= 15/cm(1), units="in", res = 300)
dev.off()
}
#+ printhtml, echo=FALSE, results = 'asis', warning = FALSE, error = FALSE, message = FALSE
for(i in 1:3) {
#Titre
cat(paste("\n<h2>", colnames(d)[i]), "</h2>\n")
# graphique 1
cat(paste("\n<p><img src=\"",getwd(), "/mygraphs/",colnames(d)[i],".png\" WIDTH=\"35%\" /> </p>",sep=""))
# résultats de la régression
cat("\n<pre><code> \n")
print(summary(models[[i]]))
cat("\n</code></pre>\n")
# graphique 2
cat(paste("\n<p><img src=\"",getwd(), "/mygraphs/diag",colnames(d)[i],".png\" WIDTH=\"60%\" /> </p>",sep=""))
}
Code : Tout sélectionner
library(knitr)
spin(hair = "loop_for_html.R" , knit = TRUE, format = c("Rhtml"))
knit2html("loop_for_html.Rhtml",fragment.only=FALSE)
Code : Tout sélectionner
#+ pri, echo=FALSE, results = 'asis', warning = FALSE, error = FALSE, message = FALSE
for(i in 1:3) {
#Titre
cat(paste("\n##", colnames(d)[i]), "\n")
# graphique 1
cat(paste("\n<p align=center><img src=\"",getwd(), "/mygraphs/",colnames(d)[i],".png\" WIDTH=\"35%\" /> </p>",sep=""))
# résultats de la régression
cat("\n\n```\n\n")
print(summary(models[[i]]))
cat("\n\n```\n\n")
# graphique 2
cat(paste("\n<p align=center><img src=\"",getwd(), "/mygraphs/diag",colnames(d)[i],".png\" WIDTH=\"60%\" /> </p>",sep=""))
}
Retourner vers « Questions en cours »
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité