Parcourir la source

Now stats can be specified also for desc_groupe, in the same fashion as for desc_global and with the same defaults.

Help files have been corrected accordingly
Small fix in desc.css to allow the centering of the stats names
master
Maxime Wack il y a 10 ans
Parent
révision
2045c9822a
5 fichiers modifiés avec 64 ajouts et 21 suppressions
  1. +1
    -1
      R/desc_global.R
  2. +48
    -15
      R/desc_groupe.R
  3. +6
    -0
      inst/desc.css
  4. +2
    -2
      man/desc_global.Rd
  5. +7
    -3
      man/desc_groupe.Rd

+ 1
- 1
R/desc_global.R Voir le fichier

@@ -11,7 +11,7 @@
#' @param titre Titre du tableau, par defaut "Descriptif global de nom_de_la_table"
#' @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, \%/med, med, et, ic95, q1, med, q3, min et max. Par defaut c("N","\%/moy","et")
#' @param stats Vecteur de valeurs a calculer, parmi N, \%, \%/moy, moy, \%/med, med, et, ic95, Q1, med, Q3, min et max. Par defaut c("N","\%/moy","et")
#' @param miss Booleen : afficher ou non les valeurs manquantes, par defaut TRUE
#' @param note Note de bas de page, par defaut vide
#' @param nbdec Nombre de decimales apres la virgule, par defaut 1


+ 48
- 15
R/desc_groupe.R Voir le fichier

@@ -13,6 +13,7 @@
#' @param titre Titre du tableau, par defaut "Comparaison selon nom_de_la_variable"
#' @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 stats Vecteur de valeurs a calculer, parmi N, \%, \%/moy, moy, \%/med, med, et, ic95, Q1, med, Q3, min et max. Par defaut c("N","\%/moy","et")
#' @param note Note de bas de page, par defaut vide
#' @param nbdec Nombre de decimales apres la virgule, par defaut 1
#' @param pourcent Pourcentages pour les variables qualitatives, en colonnes ("col") ou en lignes ("row"), par defaut sur le total
@@ -26,7 +27,7 @@
#' desc_groupe(Ma_table, "sexe", param = para, titre="Comparatif selon le sexe", pourcent="row")
#' }
#' @export
desc_groupe <- function(table, groupe, param = character(0), html=NULL, titre=NULL, variables=NULL, variables_neg=NULL, note=NULL, nbdec=1, pourcent="total")
desc_groupe <- function(table, groupe, param = character(0), html=NULL, titre=NULL, variables=NULL, variables_neg=NULL,stats=c("N","%/moy","et"), note=NULL, nbdec=1, pourcent="total")
{
if (nbdec<2)
nbdecp<-2
@@ -92,16 +93,15 @@ desc_groupe <- function(table, groupe, param = character(0), html=NULL, titre=NU
HTML("<thead>")
inc()
HTML("<tr><th></th>", paste0("<th colspan='3'>",levels(modulo),"</th>", collapse=""), "<th>p</th></tr>")
HTML("<tr><th></th>", paste0("<th colspan='",length(stats),"'>",levels(modulo),"</th>", collapse=""), "<th>p</th></tr>")
HTML("<tr><td></td>", sep="")
for (i in levels(modulo))
{
HTML("<td colspan='3'>N=", length(na.omit(modulo[modulo==i])), "</td>", sep="")
}
HTML("<td colspan='",length(stats),"'>N=", length(na.omit(modulo[modulo==i])), "</td>", sep="")
HTML("<td></td></tr>")

HTML("<tr><td></td>", paste0(rep(c("<td>N</td>","<td>%/moy</td>","<td>et</td>"),nlevels(modulo)),collapse=""), "<td></td></tr>")
HTML("<tr><td></td>", paste0(rep(paste("<td>",stats,"</td>",sep="", collapse=""),nlevels(modulo)),collapse=""), "<td></td></tr>")

dec()
HTML("</thead>")
@@ -111,7 +111,7 @@ desc_groupe <- function(table, groupe, param = character(0), html=NULL, titre=NU
{
HTML("<tfoot>")
inc()
HTML("<tr><td colspan='", nlevels(modulo)*3+2, "'>", note,"</td></tr>")
HTML("<tr><td colspan='", nlevels(modulo)*length(stats)+2, "'>", note,"</td></tr>")
dec()
HTML("</tfoot>")
}
@@ -158,7 +158,32 @@ desc_groupe <- function(table, groupe, param = character(0), html=NULL, titre=NU
HTML("<tr><td class='var'>", etiq, "</td>", sep="")
for (level in levels(modulo))
HTML("<td>",length(na.omit(table[[var]][modulo==level])) ,"</td><td>",format(mean(table[[var]][modulo==level], na.rm=T), digits=nbdec,nsmall=nbdec), "</td><td>", format(sd(table[[var]][modulo==level],na.rm=T), digits=nbdec,nsmall=nbdec), "</td>", sep="")
{
for (stat in stats)
{
HTML("<td>",sep="")
HTML(tryCatch(
{
format(switch(stat,
N = length(na.omit(table[[var]][modulo==level])),
"%/moy" = ,
moy = mean(table[[var]][modulo==level],na.rm=T),
"%/med" = ,
med = median(table[[var]][modulo==level],na.rm=T),
Q1 = quantile(table[[var]][modulo==level], probs=.25, na.rm=T,names=F,type=3),
Q3 = quantile(table[[var]][modulo==level], probs=.75, na.rm=T,names=F,type=3),
min = min(table[[var]][modulo==level],na.rm=T),
max = max(table[[var]][modulo==level],na.rm=T),
et = sd(table[[var]][modulo==level],na.rm=T),
ic95 = paste0("&plusmn;",format(mean(table[[var]][modulo==level],na.rm=T) - t.test(table[[var]][modulo==level])$conf.int[1], digits=nbdec,nsmall=nbdec)),
... = "ERR"
),digits=nbdec,nsmall=nbdec)
},error = function(e){erreur(e,var,"dans le calcul de ",stat)}), sep="")
HTML("</td>", sep="")
}
}
HTML("<td>", format(p,digits=nbdecp,nsmall=nbdecp), sep="")
if (!is.na(p))
@@ -194,7 +219,7 @@ desc_groupe <- function(table, groupe, param = character(0), html=NULL, titre=NU
"NA"
})
HTML("<tr><td class='var' colspan='", nlevels(modulo)*3+1, "'>", etiq, "</td>", sep="")
HTML("<tr><td class='var' colspan='", nlevels(modulo)*length(stats)+1, "'>", etiq, "</td>", sep="")
HTML("<td>", format(p,digits=nbdecp,nsmall=nbdecp), sep="")
if (!is.na(p))
if (p<.05)
@@ -208,12 +233,20 @@ desc_groupe <- function(table, groupe, param = character(0), html=NULL, titre=NU
HTML("<tr><td class='level'>", level, "</td>",sep="")
for (level_m in levels(modulo))
{
HTML("<td>", table(table[[var]],modulo)[level,level_m], "</td>", sep="")
switch(pourcent,
row = HTML("<td>", format(100*table(table[[var]],modulo)[level,level_m]/rowSums(table(table[[var]],modulo))[level], digits=nbdec, nsmall=nbdec), "</td>", sep=""),
col = HTML("<td>", format(100*table(table[[var]],modulo)[level,level_m]/colSums(table(table[[var]],modulo))[level_m], digits=nbdec, nsmall=nbdec), "</td>", sep=""),
total = HTML("<td>", format(100*table(table[[var]],modulo)[level,level_m]/sum(table(table[[var]],modulo)), digits=nbdec, nsmall=nbdec), "</td>", sep=""))
HTML("<td></td>",sep="")
for (stat in stats)
{
HTML("<td>",sep="")
if (stat == "N")
HTML(table(table[[var]],modulo)[level,level_m],sep="")
else if ((stat == "%") | (stat == "%/moy") | (stat == "%/med"))
switch(pourcent,
row = HTML(format(100*table(table[[var]],modulo)[level,level_m]/rowSums(table(table[[var]],modulo))[level], digits=nbdec, nsmall=nbdec), sep=""),
col = HTML(format(100*table(table[[var]],modulo)[level,level_m]/colSums(table(table[[var]],modulo))[level_m], digits=nbdec, nsmall=nbdec), sep=""),
total = HTML(format(100*table(table[[var]],modulo)[level,level_m]/sum(table(table[[var]],modulo)), digits=nbdec, nsmall=nbdec), sep=""))
HTML("</td>",sep="")
}
}
HTML("<td></td></tr>")


+ 6
- 0
inst/desc.css Voir le fichier

@@ -61,6 +61,12 @@ table.desc tbody td.level
}

table.desc tbody td
{
text-align: center;
vertical-align: bottom;
}

table.desc thead, td
{
text-align: center;
vertical-align: bottom;

+ 2
- 2
man/desc_global.Rd Voir le fichier

@@ -23,8 +23,8 @@ desc_global(table, html = "desc_global", titre = NULL, variables = NULL,
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","et")}
\%/moy, moy, \%/med, med, et, ic95, Q1, med, Q3, min et
max. Par defaut c("N","\%/moy","et")}

\item{miss}{Booleen : afficher ou non les valeurs
manquantes, par defaut TRUE}


+ 7
- 3
man/desc_groupe.Rd Voir le fichier

@@ -4,8 +4,8 @@
\title{Comparatif par groupe}
\usage{
desc_groupe(table, groupe, param = character(0), html = NULL,
titre = NULL, variables = NULL, variables_neg = NULL, note = NULL,
nbdec = 1, pourcent = "total")
titre = NULL, variables = NULL, variables_neg = NULL, stats = c("N",
"\%/moy", "et"), note = NULL, nbdec = 1, pourcent = "total")
}
\arguments{
\item{table}{Table a utiliser}
@@ -27,7 +27,11 @@ desc_groupe(table, groupe, param = character(0), html = NULL,
moins celle servant de comparateur}

\item{variables_neg}{Vecteur de noms de variables a
exclure de la comparaison}
exclure de la comparaison #'}

\item{stats}{Vecteur de valeurs a calculer, parmi N, \%,
\%/moy, moy, \%/med, med, et, ic95, Q1, med, Q3, min et
max. Par defaut c("N","\%/moy","et")}

\item{note}{Note de bas de page, par defaut vide}



Chargement…
Annuler
Enregistrer