Modification du nom des fonctions (desc -> desc_global, pour pouvoir nommer desc_groupe) Unification du CSS et JS dans cosmosR.css et cosmosR.js Headers de table de desc_groupe Copie auto des CSS et JS dans le répertoire de destination Fonction diagnostic() terminéemaster
@@ -1,6 +1,6 @@ | |||
Package: SEECNancy | |||
Package: cosmosR | |||
Type: Package | |||
Title: Fonctions pour le SEEC de Nancy | |||
Title: Production facilitee de tableaux statistiques | |||
Version: 1.0 | |||
Date: 2013-09-18 | |||
Author: Maxime Wack | |||
@@ -9,8 +9,3 @@ Depends: | |||
xlsx | |||
Description: | |||
License: GPLv3 | |||
Collate: | |||
'charger.R' | |||
'desc.R' | |||
'label.R' | |||
'html.R' |
@@ -1,11 +1,12 @@ | |||
S3method("label<-",data.frame) | |||
S3method("label<-",default) | |||
S3method(label,default) | |||
export("label<-") | |||
export("label<-.data.frame") | |||
export("label<-.default") | |||
export(HTML) | |||
export(HTMLEnd) | |||
export(HTMLInit) | |||
export(charger) | |||
export(desc) | |||
export(diag) | |||
export(desc_global) | |||
export(desc_groupe) | |||
export(diagnostic) | |||
export(label) | |||
export(label.default) |
@@ -32,16 +32,16 @@ charger <- function(fichier,nom=NULL,feuille=1) | |||
# Lecture du fichier selon l'extension | |||
if (grepl("\\.csv$",fichier) || grepl("\\.txt$",fichier)) | |||
x<-read.csv2(fichier,encoding="ISO-8859-1") | |||
x<-read.csv2(fichier) | |||
else if (grepl("\\.xlsx?$",fichier)) | |||
x<-read.xlsx(fichier,feuille,encoding="ISO-8859-1") | |||
x<-read.xlsx(fichier,feuille) | |||
# Lecture des formats a partir du fichier SAS | |||
if (file.exists("formats.sas")) | |||
{ | |||
formats=list(0) | |||
con=file("formats.sas","r",encoding="ISO-8859-1") | |||
con=file("formats.sas","r") | |||
formatsfile=readLines(con) | |||
close(con) | |||
@@ -67,7 +67,7 @@ charger <- function(fichier,nom=NULL,feuille=1) | |||
# Lecture des attributions de format depuis le fichier SAS | |||
if (file.exists("attribformats.sas")) | |||
{ | |||
con=file("attribformats.sas","r",encoding="ISO-8859-1") | |||
con=file("attribformats.sas","r") | |||
attribfile=readLines(con) | |||
close(con) | |||
@@ -108,5 +108,4 @@ charger <- function(fichier,nom=NULL,feuille=1) | |||
# Enregistrement de la table dans l'environnement, attach et assignation de la variable .attachd | |||
assign(".attachd",nom,pos=1) | |||
assign(nom,x,pos=1) | |||
attach(eval(parse(text=.attachd)),name=.attachd) | |||
} |
@@ -6,7 +6,7 @@ | |||
#' Si les labels et formats sont definis et charges ils seront utilises pour peupler le tableau. | |||
#' Tous les parametres ont une valeur par defaut, il est donc possible de simplement lancer desc() pour obtenir un tableau descriptif par defaut. | |||
#' @encoding UTF-8 | |||
#' @param html Nom du fichier html, par defaut "desc.html", eventuellement suffixe d'un nombre si le fichier existe deja | |||
#' @param html Nom du fichier html, par defaut "desc_global.html" | |||
#' @param titre Titre du tableau, par defaut "Descriptif global de nom_de_la_table" | |||
#' @param table Table a utiliser, par defaut la derniere chargee | |||
#' @param variables Vecteur de noms de variables a decrire, par defaut toutes les variables contenues dans la table | |||
@@ -17,7 +17,7 @@ | |||
#' @param note Note de bas de page, par defaut vide | |||
#' @param nbdec Nombre de decimales apres la virgule, par defaut 1 | |||
#' @export | |||
desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_neg=NULL, stats=c("N","%/moy","ic95"), miss=TRUE, anglais=FALSE, note=NULL, nbdec=1) | |||
desc_global <- function(html="desc_global", titre=NULL, table=NULL, variables=NULL, variables_neg=NULL, stats=c("N","%/moy","ic95"), miss=TRUE, anglais=FALSE, note=NULL, nbdec=1) | |||
{ | |||
if (anglais) | |||
decmark="." | |||
@@ -49,28 +49,30 @@ desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_ | |||
# Header de la table | |||
HTMLInit(file=paste0("../HTML\ Output/",html,".html"), title=titre) | |||
HTML("<table>") | |||
HTML("<div class='desc'>") | |||
inc() | |||
HTML("<caption>", titre, "</caption>") | |||
HTML("<thead>") | |||
inc() | |||
HTML("<tr><th></th>", paste("<th>",stats,"</th>",sep="", collapse=""), "</tr>") | |||
dec() | |||
HTML("</thead>") | |||
HTML("<table class='desc'>") | |||
inc() | |||
HTML("<caption>", titre, "</caption>") | |||
HTML("<thead>") | |||
inc() | |||
HTML("<tr><th></th>", paste("<th>",stats,"</th>",sep="", collapse=""), "</tr>") | |||
dec() | |||
HTML("</thead>") | |||
# Footer de la table | |||
if (!is.null(note)) | |||
{ | |||
HTML("<tfoot>") | |||
inc() | |||
HTML("<tr><td colspan='", length(stats)+1, "'>", note,"</td></tr>") | |||
dec() | |||
HTML("</tfoot>") | |||
HTML("<tfoot>") | |||
inc() | |||
HTML("<tr><td colspan='", length(stats)+1, "'>", note,"</td></tr>") | |||
dec() | |||
HTML("</tfoot>") | |||
} | |||
# Corps de la table | |||
HTML("<tbody>") | |||
inc() | |||
HTML("<tbody>") | |||
inc() | |||
for (var in names(table)) | |||
{ | |||
# Creation du label de la variable | |||
@@ -98,7 +100,7 @@ desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_ | |||
min = min(table[[var]],na.rm=T), | |||
max = max(table[[var]],na.rm=T), | |||
et = sd(table[[var]],na.rm=T), | |||
ic95 = paste0("±",format(mean(table[[var]],na.rm=T) - t.test(table[[var]])$conf.int[1], digits=nbdec,nsmall=nbdec,decimal.mark=decmark)) | |||
ic95 = paste0("±",format(mean(table[[var]],na.rm=T) - t.test(table[[var]])$conf.int[1], digits=nbdec,nsmall=nbdec,decimal.mark=decmark)) | |||
),digits=nbdec,nsmall=nbdec,decimal.mark=decmark), sep="") | |||
HTML("</td>", sep="") | |||
@@ -115,49 +117,50 @@ desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_ | |||
if ((miss) & (!is.na(summary(table[[var]])["NA's"]))) | |||
{ | |||
if (anglais) | |||
HTML("<tr><td class='level'>Missing</td>",sep="") | |||
HTML("<tr><td class='level'>Missing</td>",sep="") | |||
else | |||
HTML("<tr><td class='level'>Manquant</td>",sep="") | |||
HTML("<tr><td class='level'>Manquant</td>",sep="") | |||
for (stat in stats) | |||
{ | |||
HTML("<td>",sep="") | |||
HTML("<td>",sep="") | |||
if (stat == "N") | |||
HTML(summary(table[[var]])["NA's"],sep="") | |||
HTML(summary(table[[var]])["NA's"],sep="") | |||
# else if ((stat == "%") | (stat == "%/moy")) | |||
# HTML(format(mean(is.na(table[[var]]))*100,digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
# HTML(format(mean(is.na(table[[var]]))*100,digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
HTML("</td>",sep="") | |||
HTML("</td>",sep="") | |||
} | |||
HTML("</tr>") | |||
HTML("</tr>") | |||
} | |||
# Levels de la variable qualitative | |||
for (level in levels(table[[var]])) | |||
{ | |||
HTML("<tr><td class='level'>", level, "</td>",sep="") | |||
HTML("<tr><td class='level'>", level, "</td>",sep="") | |||
for (stat in stats) | |||
{ | |||
HTML("<td>",sep="") | |||
HTML("<td>",sep="") | |||
if (stat == "N") | |||
HTML(summary(table[[var]])[level],sep="") | |||
HTML(summary(table[[var]])[level],sep="") | |||
else if ((stat == "%") | (stat == "%/moy") | (stat == "%/med")) | |||
HTML(format(100*summary(table[[var]])[level]/length(na.omit(table[[var]])),digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
# HTML(format(100*summary(table[[var]])[level]/length(table[[var]]),digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
HTML(format(100*summary(table[[var]])[level]/length(na.omit(table[[var]])),digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
# HTML(format(100*summary(table[[var]])[level]/length(table[[var]]),digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
HTML("</td>",sep="") | |||
HTML("</td>",sep="") | |||
} | |||
HTML("</tr>") | |||
HTML("</tr>") | |||
} | |||
} | |||
else next | |||
} | |||
dec() | |||
HTML("</tbody>") | |||
dec() | |||
HTML("</tbody>") | |||
dec() | |||
HTML("</table>") | |||
HTML("</div>") | |||
HTMLEnd() | |||
} | |||
@@ -172,24 +175,41 @@ desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_ | |||
#' @encoding UTF-8 | |||
#' @param table Table a utiliser, par defaut la derniere chargee | |||
#' @export | |||
diag <- function(table=NULL) | |||
diagnostic <- function(table=NULL) | |||
{ | |||
if (is.null(table)) table<-eval(parse(text=.attachd)) | |||
HTMLInit() | |||
assign(".param", character(), pos=1) | |||
HTML("<div class='diag_menu'>") | |||
inc() | |||
for (var in names(table)) | |||
{ | |||
# Creation du label de la variable | |||
etiq <- label(table[[var]]) | |||
if (etiq == "table[[var]]") etiq <- var | |||
HTML("<p id='", var, "'>", etiq, sep="") | |||
if (is.numeric(table[[var]])) | |||
if ((shapiro.test(table[[var]])$p.value > .05) & (length(na.omit(table[[var]])) >= 30)) | |||
HTML("*", sep="") | |||
HTML("</p>") | |||
} | |||
dec() | |||
HTML("</div>") | |||
for (var in names(table)) | |||
{ | |||
# Creation du label de la variable | |||
etiq <- label(table[[var]]) | |||
if (etiq == "table[[var]]") etiq <- var | |||
HTML("<div class='varblock'>",etiq) | |||
HTML("<div class='diag_varblock' id='div_", var, "' style='display:none'>",etiq) | |||
inc() | |||
HTML("<div class='varstat'>") | |||
HTML("<div class='diag_varstat'>") | |||
inc() | |||
HTML("<table>") | |||
HTML("<table class='diag'>") | |||
inc() | |||
HTML("<tr>", paste("<th>", names(summary(table[[var]])), "</th>", collapse=""), "</tr>") | |||
HTML("<tr>", sep="") | |||
@@ -203,33 +223,33 @@ diag <- function(table=NULL) | |||
if (is.numeric(table[[var]])) | |||
{ | |||
HTML("IC95 : [ ", format(t.test(table[[var]])$conf.int[1],digits=2,nsmall=2), " - ", format(t.test(table[[var]])$conf.int[2],digits=2,nsmall=2), " ]<br/>") | |||
HTML("Test de normalité de Shapiro-Wilk : p = ", format(shapiro.test(table[[var]])$p.value,digits=2,nsmall=2), "<br/>") | |||
if ((shapiro.test(table[[var]])$p.value > 5) & (length(na.omit(table[[var]])) >= 30)) | |||
HTML("Test de normalité de Shapiro-Wilk : p = ", format(shapiro.test(table[[var]])$p.value,digits=2,nsmall=2), "<br/>") | |||
if ((shapiro.test(table[[var]])$p.value > .05) & (length(na.omit(table[[var]])) >= 30)) | |||
{ | |||
assign(".param", c(.param,var)) | |||
HTML("<b>Paramétrique</b>") | |||
assign(".param", c(.param,var), pos=1) | |||
HTML("<b>Paramétrique</b>") | |||
} | |||
} | |||
dec() | |||
HTML("</div>") | |||
HTML("<div class='varplot'>") | |||
HTML("<div class='diag_varplot'>") | |||
inc() | |||
if (is.numeric(table[[var]])) | |||
{ | |||
pngfile=tempfile(pattern="figure",fileext=".png") | |||
png(filename=pngfile) | |||
hist(table[[var]],freq=F,col="lightblue",border="darkblue",xlab=etiq,ylab="Densité",main=paste0("Distribution de ",etiq)) | |||
hist(table[[var]],freq=F,col="lightblue",border="darkblue",xlab=etiq,ylab="Densite",main=paste0("Distribution de ",etiq)) | |||
lines(density(table[[var]],na.rm=T),col="red") | |||
dev.off() | |||
HTML("<img src='", pngfile, "'/>") | |||
HTML("<img src='", basename(pngfile), "'/>") | |||
pngfile=tempfile(pattern="figure",fileext=".png") | |||
png(filename=pngfile) | |||
qqnorm(table[[var]], xlab="Quantiles théoriques",ylab="Quantiles de l'échantillon") | |||
qqnorm(table[[var]], xlab="Quantiles theoriques",ylab="Quantiles de l'echantillon") | |||
qqline(table[[var]]) | |||
dev.off() | |||
HTML("<img src='", pngfile, "'/>") | |||
HTML("<img src='", basename(pngfile), "'/>") | |||
} | |||
else if (is.factor(table[[var]])) | |||
{ | |||
@@ -237,7 +257,7 @@ diag <- function(table=NULL) | |||
png(filename=pngfile) | |||
barplot(table(table[[var]]), col="lightblue", border="darkblue") | |||
dev.off() | |||
HTML("<img src='", pngfile, "'/>") | |||
HTML("<img src='", basename(pngfile), "'/>") | |||
} | |||
dec() | |||
HTML("</div>") |
@@ -0,0 +1,190 @@ | |||
#' Comparatif par groupe de la table courante | |||
#' | |||
#' Produit un tableau comparatif par groupe de la table courante | |||
#' | |||
#' Permet de produire un tableau comparatif des variables contenues dans la table courante selon les modalites d'une d'entre elles. | |||
#' Si les labels et formats sont definis et charges ils seront utilises pour peupler le tableau. | |||
#' Tous les parametres ont une valeur par defaut, il est donc possible de simplement lancer desc() pour obtenir un tableau descriptif par defaut. | |||
#' @encoding UTF-8 | |||
#' @param html Nom du fichier html, par defaut "desc_groupe_nomdelavariable.html" | |||
#' @param titre Titre du tableau, par defaut "Comparaison selon nom_de_la_variable" | |||
#' @param table Table a utiliser, par defaut la derniere chargee | |||
#' @param groupe Variable à utiliser pour la comparaison. | |||
#' @param variables Vecteur de noms de variables a comparer, par defaut toutes les variables contenues dans la table moins celle servant de comparateur | |||
#' @param variables_neg Vecteur de noms de variables a exclure de la comparaison | |||
#' @param anglais Booleen : obtenir un tableau en anglais(intitules, separation des decimales), par defaut FALSE | |||
#' @param note Note de bas de page, par defaut vide | |||
#' @param nbdec Nombre de decimales apres la virgule, par defaut 1 | |||
#' @export | |||
desc_groupe <- function(groupe=NULL, html=NULL, titre=NULL, table=NULL, variables=NULL, variables_neg=NULL, anglais=FALSE, note=NULL, nbdec=1) | |||
{ | |||
if (is.null(table)) table<-eval(parse(text=.attachd)) | |||
if (is.null(groupe) | (!groupe %in% names(table))) | |||
{ | |||
warning("Pas de comparateur !") | |||
return | |||
} | |||
modulo <- table[[groupe]] | |||
etiq <- label(modulo) | |||
if (etiq == "modulo") etiq <- var | |||
if (anglais) | |||
decmark="." | |||
else | |||
decmark="," | |||
# Creation du titre | |||
if (is.null(titre)) | |||
titre<-paste("Comparaison selon", etiq) | |||
# Creation de la table temporaire contenant les variables demandees | |||
if (!is.null(variables)) | |||
{ | |||
badvar <- variables[!variables %in% names(table)] | |||
if (length(badvar) != 0) | |||
warning("Les variables suivantes n'existent pas dans la table : ",paste(badvar,collapse=", ")) | |||
table <- table[variables[variables %in% names(table)]] | |||
} | |||
if (!is.null(variables_neg)) | |||
{ | |||
badvar <- variables_neg[!variables_neg %in% names(table)] | |||
if (length(badvar) != 0) | |||
warning("Les variables suivantes n'existent pas dans la table : ",paste(badvar,collapse=", ")) | |||
table[variables_neg]<-list(NULL) | |||
} | |||
table[groupe]<-NULL; | |||
# Creation du nom de fichier html | |||
if (is.null(html)) | |||
html <- paste0("desc_groupe_",groupe) | |||
# Header de la table | |||
HTMLInit(file=paste0("../HTML\ Output/",html,".html"), title=titre) | |||
HTML("<div class='desc'>") | |||
inc() | |||
HTML("<table class='desc'>") | |||
inc() | |||
HTML("<caption>", titre, "</caption>") | |||
HTML("<thead>") | |||
inc() | |||
HTML("<tr><th></th>", paste0("<th colspan='2'>",levels(modulo),"</th>", collapse=""), "<th>p</th></tr>") | |||
HTML("<tr><td></td>", sep="") | |||
for (i in levels(modulo)) | |||
{ | |||
HTML("<td colspan='2'>N=", table(modulo)[[i]], "</td>", sep="") | |||
} | |||
HTML("</tr>") | |||
HTML("<tr><td></td>", paste0(rep(c("<td>N/moy</td>","<td>%/SD</td>"),nlevels(modulo)),collapse=""), "</tr>") | |||
dec() | |||
HTML("</thead>") | |||
# Footer de la table | |||
if (!is.null(note)) | |||
{ | |||
HTML("<tfoot>") | |||
inc() | |||
HTML("<tr><td colspan='", nlevels(modulo)*2+2, "'>", note,"</td></tr>") | |||
dec() | |||
HTML("</tfoot>") | |||
} | |||
# Corps de la table | |||
HTML("<tbody>") | |||
inc() | |||
for (var in names(table)) | |||
{ | |||
# Creation du label de la variable | |||
etiq <- label(table[[var]]) | |||
if (etiq == "table[[var]]") etiq <- var | |||
# Variable quantitative | |||
if (is.numeric(table[[var]])) | |||
{ | |||
# HTML("<tr><td class='var'>", etiq, "</td>", sep="") | |||
# | |||
# res <- NA | |||
# for (stat in stats) | |||
# { | |||
# HTML("<td>",sep="") | |||
# | |||
# HTML(format(switch(stat, | |||
# N = length(na.omit(table[[var]])), | |||
# "%/moy" = , | |||
# moy = mean(table[[var]],na.rm=T), | |||
# "%/med" = , | |||
# med = median(table[[var]],na.rm=T), | |||
# Q1 = quantile(table[[var]], probs=.25, na.rm=T), | |||
# Q3 = quantile(table[[var]], probs=.75, na.rm=T), | |||
# min = min(table[[var]],na.rm=T), | |||
# max = max(table[[var]],na.rm=T), | |||
# et = sd(table[[var]],na.rm=T), | |||
# ic95 = paste0("±",format(mean(table[[var]],na.rm=T) - t.test(table[[var]])$conf.int[1], digits=nbdec,nsmall=nbdec,decimal.mark=decmark)) | |||
# ),digits=nbdec,nsmall=nbdec,decimal.mark=decmark), sep="") | |||
# | |||
# HTML("</td>", sep="") | |||
# } | |||
# | |||
# HTML("</tr>") | |||
} | |||
# Variable qualitative | |||
else if (is.factor(table[[var]])) | |||
{ | |||
# HTML("<tr><td class='var' colspan='", length(stats)+1, "'>", etiq, "</td></tr>") | |||
# | |||
# # Donnees manquantes | |||
# if ((miss) & (!is.na(summary(table[[var]])["NA's"]))) | |||
# { | |||
# if (anglais) | |||
# HTML("<tr><td class='level'>Missing</td>",sep="") | |||
# else | |||
# HTML("<tr><td class='level'>Manquant</td>",sep="") | |||
# | |||
# for (stat in stats) | |||
# { | |||
# HTML("<td>",sep="") | |||
# | |||
# if (stat == "N") | |||
# HTML(summary(table[[var]])["NA's"],sep="") | |||
# # else if ((stat == "%") | (stat == "%/moy")) | |||
# # HTML(format(mean(is.na(table[[var]]))*100,digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
# | |||
# HTML("</td>",sep="") | |||
# } | |||
# HTML("</tr>") | |||
# } | |||
# | |||
# # Levels de la variable qualitative | |||
# for (level in levels(table[[var]])) | |||
# { | |||
# HTML("<tr><td class='level'>", level, "</td>",sep="") | |||
# for (stat in stats) | |||
# { | |||
# HTML("<td>",sep="") | |||
# | |||
# if (stat == "N") | |||
# HTML(summary(table[[var]])[level],sep="") | |||
# else if ((stat == "%") | (stat == "%/moy") | (stat == "%/med")) | |||
# HTML(format(100*summary(table[[var]])[level]/length(na.omit(table[[var]])),digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
# # HTML(format(100*summary(table[[var]])[level]/length(table[[var]]),digits=nbdec,nsmall=nbdec,decimal.mark=decmark),sep="") | |||
# | |||
# HTML("</td>",sep="") | |||
# } | |||
# HTML("</tr>") | |||
# } | |||
} | |||
else next | |||
} | |||
dec() | |||
HTML("</tbody>") | |||
dec() | |||
HTML("</table>") | |||
HTML("</div>") | |||
HTMLEnd() | |||
} |
@@ -10,6 +10,8 @@ | |||
#' @export | |||
HTMLInit <- function(file=tempfile(pattern="report", fileext=".html"), title="") | |||
{ | |||
file.copy(from=file.path(path.package("cosmosR"),"data","cosmosR.css"), to=file.path(dirname(file),"cosmosR.css"),overwrite=T) | |||
file.copy(from=file.path(path.package("cosmosR"),"data","cosmosR.js"), to=file.path(dirname(file),"cosmosR.js"),overwrite=T) | |||
assign(".HTML.file", file, pos=1) | |||
assign(".tabs", 0, pos=1) | |||
assign(".ligne",F,pos=1) | |||
@@ -19,9 +21,10 @@ HTMLInit <- function(file=tempfile(pattern="report", fileext=".html"), title="") | |||
inc() | |||
HTML("<HEAD>") | |||
inc() | |||
HTML("<meta charset='utf-8' />") | |||
HTML("<meta charset='", localeToCharset(), "' />") | |||
HTML("<title>", title, "</title>") | |||
HTML("<link rel='stylesheet' href='cosmosR.css' />") | |||
HTML("<script src='cosmosR.js'></script>") | |||
dec() | |||
HTML("</HEAD>") | |||
HTML("<BODY>") | |||
@@ -0,0 +1,127 @@ | |||
body | |||
{ | |||
background-color: lightgrey; | |||
} | |||
div.desc | |||
{ | |||
background-color: white; | |||
border-radius: 10px; | |||
box-shadow: 2px 4px 5px grey inset; | |||
margin: 20px auto; | |||
width: 60%; | |||
padding: 10px; | |||
} | |||
table.desc | |||
{ | |||
border-collapse: collapse; | |||
font-family: "Tahoma","Trebuchet MS","Verdana","Myriad Web","sans-serif"; | |||
font-size: .75em; | |||
} | |||
table.desc caption | |||
{ | |||
font-weight: bold; | |||
border-bottom: 1px solid black; | |||
text-align: left; | |||
} | |||
table.desc thead, th | |||
{ | |||
padding: 0 1em; | |||
border-bottom: 1px solid black; | |||
height: 2em; | |||
font-weight: normal; | |||
vertical-align: top; | |||
text-align: center; | |||
} | |||
table.desc tfoot | |||
{ | |||
font-style: italic; | |||
font-size: small; | |||
border-top: 1px solid black; | |||
} | |||
table.desc tbody td.var | |||
{ | |||
padding-top: 1em; | |||
padding-left: 0; | |||
font-weight: bold; | |||
text-align: left; | |||
} | |||
table.desc tbody td.level | |||
{ | |||
padding-left: 1em; | |||
text-align: left; | |||
} | |||
table.desc tbody td | |||
{ | |||
padding: 0 1em; | |||
text-align: right; | |||
} | |||
div.diag_menu | |||
{ | |||
background-color: white; | |||
border-radius: 10px; | |||
box-shadow: 2px 4px 5px grey inset; | |||
margin: 10px 10px; | |||
width: 15%; | |||
padding: 10px; | |||
display: inline-block; | |||
vertical-align: top; | |||
overflow: hidden; | |||
resize: both; | |||
} | |||
div.diag_menu p | |||
{ | |||
margin: 0px; | |||
font-weight: bold; | |||
} | |||
div.diag_menu p:hover | |||
{ | |||
background-color: grey; | |||
} | |||
table.diag{ | |||
text-align: center; | |||
padding: 5px 0; | |||
} | |||
table.diag td, th | |||
{ | |||
padding: 3px; | |||
} | |||
div.diag_varblock | |||
{ | |||
background-color: white; | |||
border-radius: 10px; | |||
box-shadow: 2px 4px 5px grey inset; | |||
margin: 10px 10px; | |||
padding: 10px; | |||
font-weight: bold; | |||
font-size: 1.2em; | |||
display: inline-block; | |||
vertical-align: top; | |||
overflow: hidden; | |||
position: fixed; | |||
} | |||
div.diag_varstat | |||
{ | |||
margin: 20px; | |||
font-weight: normal; | |||
font-size: 1rem; | |||
} | |||
div.diag_varplot | |||
{ | |||
text-align: center; | |||
} |
@@ -0,0 +1,16 @@ | |||
window.onload = function() | |||
{ | |||
var diag_menu_vars = document.querySelectorAll('div.diag_menu p'); | |||
for (var i in diag_menu_vars) | |||
{ | |||
diag_menu_vars[i].onmouseover = function() | |||
{ | |||
document.getElementById("div_"+this.id).style.display='inline-block'; | |||
}; | |||
diag_menu_vars[i].onmouseout = function() | |||
{ | |||
document.getElementById("div_"+this.id).style.display='none'; | |||
}; | |||
} | |||
}; |
@@ -1,49 +0,0 @@ | |||
table | |||
{ | |||
border-collapse: collapse; | |||
font-family: "Tahoma","Trebuchet MS","Verdana","Myriad Web","sans-serif"; | |||
font-size: .75em; | |||
} | |||
caption | |||
{ | |||
font-weight: bold; | |||
border-bottom: 1px solid black; | |||
text-align: left; | |||
} | |||
thead th | |||
{ | |||
padding: 0 1em; | |||
border-bottom: 1px solid black; | |||
height: 2em; | |||
font-weight: normal; | |||
vertical-align: top; | |||
} | |||
tfoot | |||
{ | |||
font-style: italic; | |||
font-size: small; | |||
border-top: 1px solid black; | |||
} | |||
tbody td.var | |||
{ | |||
padding-top: 1em; | |||
padding-left: 0; | |||
font-weight: bold; | |||
text-align: left; | |||
} | |||
tbody td.level | |||
{ | |||
padding-left: 1em; | |||
text-align: left; | |||
} | |||
tbody td | |||
{ | |||
padding: 0 1em; | |||
text-align: right; | |||
} |
@@ -1,45 +0,0 @@ | |||
body | |||
{ | |||
background-color: lightgrey; | |||
} | |||
table{ | |||
text-align: center; | |||
padding: 5px 0; | |||
} | |||
td, th | |||
{ | |||
padding: 3px; | |||
} | |||
div.varblock | |||
{ | |||
background-color: white; | |||
border-radius: 10px; | |||
box-shadow: 2px 4px 5px grey inset; | |||
margin: 20px auto; | |||
width: 60%; | |||
padding: 10px; | |||
font-weight: bold; | |||
font-size: 1.2em; | |||
height: 1em; | |||
overflow: hidden; | |||
} | |||
div.varblock:hover | |||
{ | |||
height: 100%; | |||
} | |||
div.varstat | |||
{ | |||
margin: 20px; | |||
font-weight: normal; | |||
font-size: 1rem; | |||
} | |||
div.varplot | |||
{ | |||
text-align: center; | |||
} |
@@ -3,13 +3,13 @@ | |||
\alias{HTML} | |||
\title{Ecrit dans le fichier HTML} | |||
\usage{ | |||
HTML(x, ..., append = T, sep = "\n") | |||
HTML(x, ..., append = T, sep = "\\n") | |||
} | |||
\description{ | |||
Ecrit dans le fichier HTML cree par HTMLInit | |||
Ecrit dans le fichier HTML cree par HTMLInit | |||
} | |||
\details{ | |||
Ecrit dans le fichier initialise par HTMLInit dont le nom | |||
est contenu dans .HTML.file | |||
Ecrit dans le fichier initialise par HTMLInit dont le nom | |||
est contenu dans .HTML.file | |||
} | |||
@@ -3,13 +3,13 @@ | |||
\alias{HTMLEnd} | |||
\title{Termine et clos le fichier HTML} | |||
\usage{ | |||
HTMLEnd() | |||
HTMLEnd() | |||
} | |||
\description{ | |||
Ecrit le footer du fichier hTML | |||
Ecrit le footer du fichier hTML | |||
} | |||
\details{ | |||
Ecrit le footer du fichier initialise par HTMLInit, ouvre | |||
le fichier dans le navigateur et supprime l'acces. | |||
Ecrit le footer du fichier initialise par HTMLInit, ouvre | |||
le fichier dans le navigateur et supprime l'acces. | |||
} | |||
@@ -3,18 +3,20 @@ | |||
\alias{HTMLInit} | |||
\title{Initialiser un fichier HTML} | |||
\usage{ | |||
HTMLInit(file = tempfile(pattern = "report", fileext = ".html"), | |||
title = "") | |||
HTMLInit(file = tempfile(pattern = "report", fileext = ".html"), title = "") | |||
} | |||
\arguments{ | |||
\item{file}{Nom du fichier HTML à creer, par defaut un | |||
fichier temporaire} | |||
\item{title}{Titre de la page} | |||
} | |||
\description{ | |||
Cree et remplit les headers pour un fichier hTML | |||
Cree et remplit les headers pour un fichier hTML | |||
} | |||
\details{ | |||
Si aucun nom de fichier n'est fourni, cree un fichier | |||
temporaire dans le repertoire temporaire Le nom du | |||
fichier actuel est stocke dans .HTML.file | |||
Si aucun nom de fichier n'est fourni, cree un fichier | |||
temporaire dans le repertoire temporaire Le nom du fichier | |||
actuel est stocke dans .HTML.file | |||
} | |||
@@ -3,7 +3,7 @@ | |||
\alias{charger} | |||
\title{Charger un fichier de donnees dans l'environnement} | |||
\usage{ | |||
charger(fichier, nom = NULL, feuille = 1) | |||
charger(fichier, nom = NULL, feuille = 1) | |||
} | |||
\arguments{ | |||
\item{fichier}{Fichier de donnees a charger} | |||
@@ -16,18 +16,17 @@ | |||
feuille au-dela de la premiere)} | |||
} | |||
\description{ | |||
Charge un fichier texte ou excel contenant les donnees | |||
ainsi que les formats et labels | |||
Charge un fichier texte ou excel contenant les donnees | |||
ainsi que les formats et labels | |||
} | |||
\details{ | |||
La fonction charge les donnees contenues dans le fichier | |||
de donnees et cree une table de valeurs. Si des | |||
labels/formats sont definis ils seront appliques. Les | |||
variables pour lesquelles un format est defini seront | |||
considerees comme des variables qualitatives. La table de | |||
valeurs prend automatiquement le nom du fichier (suffixe | |||
par le numero de feuille) et est attachee a | |||
l'environnement courant. | |||
La fonction charge les donnees contenues dans le fichier de | |||
donnees et cree une table de valeurs. Si des labels/formats | |||
sont definis ils seront appliques. Les variables pour | |||
lesquelles un format est defini seront considerees comme | |||
des variables qualitatives. La table de valeurs prend | |||
automatiquement le nom du fichier (suffixe par le numero de | |||
feuille) et est attachee a l'environnement courant. | |||
} | |||
\examples{ | |||
charger("data.csv") #charger un fichier texte (marche aussi pour les .txt) | |||
@@ -3,10 +3,9 @@ | |||
\alias{desc} | |||
\title{Descriptif global de la table courante} | |||
\usage{ | |||
desc(html = "desc", titre = NULL, table = NULL, | |||
variables = NULL, variables_neg = NULL, | |||
stats = c("N", "\%/moy", "ic95"), miss = TRUE, | |||
anglais = FALSE, note = NULL, nbdec = 1) | |||
desc(html = "desc", titre = NULL, table = NULL, variables = NULL, | |||
variables_neg = NULL, stats = c("N", "\%/moy", "ic95"), miss = TRUE, | |||
anglais = FALSE, note = NULL, nbdec = 1) | |||
} | |||
\arguments{ | |||
\item{html}{Nom du fichier html, par defaut "desc.html", | |||
@@ -42,14 +41,14 @@ | |||
defaut 1} | |||
} | |||
\description{ | |||
Produit un tableau descriptif de la table courante | |||
Produit un tableau descriptif de la table courante | |||
} | |||
\details{ | |||
Permet de produire un tableau descriptif des variables | |||
contenues dans la table courante. Si les labels et | |||
formats sont definis et charges ils seront utilises pour | |||
peupler le tableau. Tous les parametres ont une valeur | |||
par defaut, il est donc possible de simplement lancer | |||
desc() pour obtenir un tableau descriptif par defaut. | |||
Permet de produire un tableau descriptif des variables | |||
contenues dans la table courante. Si les labels et formats | |||
sont definis et charges ils seront utilises pour peupler le | |||
tableau. Tous les parametres ont une valeur par defaut, il | |||
est donc possible de simplement lancer desc() pour obtenir | |||
un tableau descriptif par defaut. | |||
} | |||
@@ -0,0 +1,53 @@ | |||
\encoding{UTF-8} | |||
\name{desc_global} | |||
\alias{desc_global} | |||
\title{Descriptif global de la table courante} | |||
\usage{ | |||
desc_global(html = "desc_global", titre = NULL, table = NULL, | |||
variables = NULL, variables_neg = NULL, stats = c("N", "\%/moy", | |||
"ic95"), miss = TRUE, anglais = FALSE, note = NULL, nbdec = 1) | |||
} | |||
\arguments{ | |||
\item{html}{Nom du fichier html, par defaut | |||
"desc_global.html"} | |||
\item{titre}{Titre du tableau, par defaut "Descriptif | |||
global de nom_de_la_table"} | |||
\item{table}{Table a utiliser, par defaut la derniere | |||
chargee} | |||
\item{variables}{Vecteur de noms de variables a decrire, | |||
par defaut toutes les variables contenues dans la table} | |||
\item{variables_neg}{Vecteur de noms de variables a | |||
exclure de la description} | |||
\item{stats}{Vecteur de valeurs a calculer, parmi N, \%, | |||
\%/moy, moy, \%/med, med, et, ic95, q1, med, q3. Par | |||
defaut c("N","\%/moy","ic95")} | |||
\item{miss}{Booleen : afficher ou non les valeurs | |||
manquantes, par defaut TRUE} | |||
\item{anglais}{Booleen : obtenir un tableau en | |||
anglais(intitules, separation des decimales), par defaut | |||
FALSE} | |||
\item{note}{Note de bas de page, par defaut vide} | |||
\item{nbdec}{Nombre de decimales apres la virgule, par | |||
defaut 1} | |||
} | |||
\description{ | |||
Produit un tableau descriptif de la table courante | |||
} | |||
\details{ | |||
Permet de produire un tableau descriptif des variables | |||
contenues dans la table courante. Si les labels et formats | |||
sont definis et charges ils seront utilises pour peupler le | |||
tableau. Tous les parametres ont une valeur par defaut, il | |||
est donc possible de simplement lancer desc() pour obtenir | |||
un tableau descriptif par defaut. | |||
} | |||
@@ -0,0 +1,51 @@ | |||
\encoding{UTF-8} | |||
\name{desc_groupe} | |||
\alias{desc_groupe} | |||
\title{Comparatif par groupe de la table courante} | |||
\usage{ | |||
desc_groupe(groupe = NULL, html = NULL, titre = NULL, table = NULL, | |||
variables = NULL, variables_neg = NULL, anglais = FALSE, note = NULL, | |||
nbdec = 1) | |||
} | |||
\arguments{ | |||
\item{html}{Nom du fichier html, par defaut | |||
"desc_groupe_nomdelavariable.html"} | |||
\item{titre}{Titre du tableau, par defaut "Comparaison | |||
selon nom_de_la_variable"} | |||
\item{table}{Table a utiliser, par defaut la derniere | |||
chargee} | |||
\item{groupe}{Variable à utiliser pour la comparaison.} | |||
\item{variables}{Vecteur de noms de variables a comparer, | |||
par defaut toutes les variables contenues dans la table | |||
moins celle servant de comparateur} | |||
\item{variables_neg}{Vecteur de noms de variables a | |||
exclure de la comparaison} | |||
\item{anglais}{Booleen : obtenir un tableau en | |||
anglais(intitules, separation des decimales), par defaut | |||
FALSE} | |||
\item{note}{Note de bas de page, par defaut vide} | |||
\item{nbdec}{Nombre de decimales apres la virgule, par | |||
defaut 1} | |||
} | |||
\description{ | |||
Produit un tableau comparatif par groupe de la table | |||
courante | |||
} | |||
\details{ | |||
Permet de produire un tableau comparatif des variables | |||
contenues dans la table courante selon les modalites d'une | |||
d'entre elles. Si les labels et formats sont definis et | |||
charges ils seront utilises pour peupler le tableau. Tous | |||
les parametres ont une valeur par defaut, il est donc | |||
possible de simplement lancer desc() pour obtenir un | |||
tableau descriptif par defaut. | |||
} | |||
@@ -3,27 +3,27 @@ | |||
\alias{diag} | |||
\title{Diagnostics de la table courante} | |||
\usage{ | |||
diag(table = NULL) | |||
diag(table = NULL) | |||
} | |||
\arguments{ | |||
\item{table}{Table a utiliser, par defaut la derniere | |||
chargee} | |||
} | |||
\description{ | |||
Produit un tableau descriptif de la table courante et des | |||
graphiques pour la verification des conditions | |||
d'utilisation des tests satistiques | |||
Produit un tableau descriptif de la table courante et des | |||
graphiques pour la verification des conditions | |||
d'utilisation des tests satistiques | |||
} | |||
\details{ | |||
Permet de produire un tableau descriptif des variables | |||
contenues dans la table courante. Si les labels et | |||
formats sont definis et charges ils seront utilises pour | |||
peupler le tableau. La fonction attribue un paramètre | |||
"param" à chaque variable à partir de tests de normalité, | |||
ce paramètre est modifiable ensuite, il conditionne | |||
l'utilisation des tests statistiques dans la fonction | |||
comparer(). Tous les parametres ont une valeur par | |||
defaut, il est donc possible de simplement lancer diag() | |||
pour obtenir le diagnostic par defaut. | |||
Permet de produire un tableau descriptif des variables | |||
contenues dans la table courante. Si les labels et formats | |||
sont definis et charges ils seront utilises pour peupler le | |||
tableau. La fonction attribue un paramètre "param" à | |||
chaque variable à partir de tests de normalité, ce | |||
paramètre est modifiable ensuite, il conditionne | |||
l'utilisation des tests statistiques dans la fonction | |||
comparer(). Tous les parametres ont une valeur par defaut, | |||
il est donc possible de simplement lancer diag() pour | |||
obtenir le diagnostic par defaut. | |||
} | |||
@@ -0,0 +1,29 @@ | |||
\encoding{UTF-8} | |||
\name{diagnostic} | |||
\alias{diagnostic} | |||
\title{Diagnostics de la table courante} | |||
\usage{ | |||
diagnostic(table = NULL) | |||
} | |||
\arguments{ | |||
\item{table}{Table a utiliser, par defaut la derniere | |||
chargee} | |||
} | |||
\description{ | |||
Produit un tableau descriptif de la table courante et des | |||
graphiques pour la verification des conditions | |||
d'utilisation des tests satistiques | |||
} | |||
\details{ | |||
Permet de produire un tableau descriptif des variables | |||
contenues dans la table courante. Si les labels et formats | |||
sont definis et charges ils seront utilises pour peupler le | |||
tableau. La fonction attribue un paramètre "param" à | |||
chaque variable à partir de tests de normalité, ce | |||
paramètre est modifiable ensuite, il conditionne | |||
l'utilisation des tests statistiques dans la fonction | |||
comparer(). Tous les parametres ont une valeur par defaut, | |||
il est donc possible de simplement lancer diag() pour | |||
obtenir le diagnostic par defaut. | |||
} | |||
@@ -7,15 +7,15 @@ | |||
\alias{label<-.default} | |||
\title{Etiquetter un objet} | |||
\usage{ | |||
label(objet) | |||
label(objet) | |||
label.default(objet) | |||
\method{label}{default}(objet) | |||
label(objet, value) <- value | |||
label(objet) <- value | |||
label.default(objet, value) <- value | |||
\method{label}{default}(objet) <- value | |||
label.data.frame(objet, value) <- value | |||
\method{label}{data.frame}(objet) <- value | |||
} | |||
\arguments{ | |||
\item{objet}{L'objet a nommer} | |||
@@ -23,16 +23,16 @@ | |||
\item{value}{Le texte de l'etiquette} | |||
} | |||
\value{ | |||
Renvoie une chaine de caracteres contenant l'etiquette de | |||
l'objet | |||
Renvoie une chaine de caracteres contenant l'etiquette de | |||
l'objet | |||
} | |||
\description{ | |||
Attribuer ou recuperer l'etiquette d'un objet | |||
Attribuer ou recuperer l'etiquette d'un objet | |||
} | |||
\details{ | |||
Methode par defaut pour acceder et modifier l'etiquette | |||
d'un objet ou d'un element d'un objet. Il est possible de | |||
supprimer l'etiquette en passant NULL a la fonction. | |||
Methode par defaut pour acceder et modifier l'etiquette | |||
d'un objet ou d'un element d'un objet. Il est possible de | |||
supprimer l'etiquette en passant NULL a la fonction. | |||
} | |||
\examples{ | |||
label(a) <- "Une variable" | |||