|
|
@@ -11,7 +11,7 @@ |
|
|
|
#' @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 |
|
|
|
#' @param variables_neg Vecteur de noms de variables a exclure de la description |
|
|
|
#' @param stats Vecteur de valeurs a calculer, parmi N, \%, \%/moy, moy, et, ic95, q1, med, q3. Par defaut c("N","\%/moy","ic95") |
|
|
|
#' @param stats Vecteur de valeurs a calculer, parmi N, \%, \%/moy, moy, \%/med, med, et, ic95, q1, med, q3. Par defaut c("N","\%/moy","ic95") |
|
|
|
#' @param miss Booleen : afficher ou non les valeurs manquantes, par defaut TRUE |
|
|
|
#' @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 |
|
|
@@ -24,15 +24,18 @@ desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_ |
|
|
|
else |
|
|
|
decmark="," |
|
|
|
|
|
|
|
# Creation du titre |
|
|
|
if (is.null(titre) & is.null(table)) |
|
|
|
titre<-paste("Descriptif global de",.attachd) |
|
|
|
else if (is.null(titre)) |
|
|
|
titre<-paste("Descriptif global de",deparse(substitute(table))) |
|
|
|
|
|
|
|
|
|
|
|
# Creation de la table temporaire contenant les variables demandees |
|
|
|
if (is.null(table)) table<-eval(parse(text=.attachd)) |
|
|
|
if (!is.null(variables)) table=table[variables] |
|
|
|
if (!is.null(variables_neg)) table[variables_neg]<-list(NULL) |
|
|
|
|
|
|
|
# Header de la table |
|
|
|
HTMLInit(file=paste0("../HTML\ Output/",html,".html"), title=titre) |
|
|
|
HTML("<table>") |
|
|
|
inc() |
|
|
@@ -42,76 +45,103 @@ desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_ |
|
|
|
HTML("<tr><th></th>", paste("<th>",stats,"</th>",sep="", collapse=""), "</tr>") |
|
|
|
dec() |
|
|
|
HTML("</thead>") |
|
|
|
if (!is.null(note)) |
|
|
|
{ |
|
|
|
|
|
|
|
# Footer de la table |
|
|
|
if (!is.null(note)) |
|
|
|
{ |
|
|
|
HTML("<tfoot>") |
|
|
|
inc() |
|
|
|
HTML("<tr><td colspan='", length(stats)+1, "'>", note,"</td></tr>") |
|
|
|
dec() |
|
|
|
HTML("</tfoot>") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
# Corps de la table |
|
|
|
HTML("<tbody>") |
|
|
|
inc() |
|
|
|
for (var in names(table)) |
|
|
|
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) |
|
|
|
{ |
|
|
|
etiq <- label(table[[var]]) |
|
|
|
if (etiq == "table[[var]]") etiq <- var |
|
|
|
HTML("<td>",sep="") |
|
|
|
|
|
|
|
if (is.numeric(table[[var]])) |
|
|
|
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) |
|
|
|
{ |
|
|
|
res <- NA |
|
|
|
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="") |
|
|
|
} |
|
|
|
else if (is.factor(table[[var]])) |
|
|
|
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("<tr><td class='var' colspan='", length(stats)+1, "'>", etiq, "</td></tr>") |
|
|
|
|
|
|
|
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>") |
|
|
|
} |
|
|
|
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")) |
|
|
|
{ |
|
|
|
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>") |
|
|
|
} |
|
|
|
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="") |
|
|
|
} |
|
|
|
else next |
|
|
|
HTML("</tr>") |
|
|
|
} |
|
|
|
} |
|
|
|
else next |
|
|
|
} |
|
|
|
dec() |
|
|
|
HTML("</tbody>") |
|
|
|
dec() |
|
|
|