Browse Source

Retrait dépendance à R2HTML

Codage de fonctions propres pour l'écriture en HTML
Passage de tout en UTF-8 et sans caractères spéciaux ou accentués
Header et footer du tableau de desc
master
Maxime Wack 10 years ago
parent
commit
5018f05f5a
13 changed files with 258 additions and 90 deletions
  1. +2
    -0
      .gitignore
  2. +6
    -1
      DESCRIPTION
  3. +6
    -3
      NAMESPACE
  4. +10
    -10
      R/charger.R
  5. +39
    -14
      R/desc.R
  6. +73
    -0
      R/html.R
  7. +8
    -8
      R/label.R
  8. +15
    -0
      man/HTML.Rd
  9. +15
    -0
      man/HTMLEnd.Rd
  10. +20
    -0
      man/HTMLInit.Rd
  11. +18
    -17
      man/charger.Rd
  12. +32
    -23
      man/desc.Rd
  13. +14
    -14
      man/label.Rd

+ 2
- 0
.gitignore View File

@@ -3,3 +3,5 @@
.RData
Read-and-delete-me
desktop.ini
Ott
*.xls

+ 6
- 1
DESCRIPTION View File

@@ -6,6 +6,11 @@ Date: 2013-09-18
Author: Maxime Wack
Maintainer: Maxime Wack <maximewack@free.fr>
Depends:
R2HTML,xlsx
xlsx
Description:
License: GPLv3
Collate:
'charger.R'
'desc.R'
'label.R'
'html.R'

+ 6
- 3
NAMESPACE View File

@@ -1,7 +1,10 @@
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(label)
export(label.default)

+ 10
- 10
R/charger.R View File

@@ -1,15 +1,15 @@
#' Charger un fichier de données dans l'environnement
#' Charger un fichier de donnees dans l'environnement
#'
#' Charge un fichier texte ou excel contenant les données ainsi que les formats et labels
#' Charge un fichier texte ou excel contenant les donnees ainsi que les formats et labels
#'
#' La fonction charge les données contenues dans le fichier de données et créé une table de valeurs.
#' Si des labels/formats sont définis ils seront appliqués.
#' Les variables pour lesquelles un format est défini seront considérées comme des variables qualitatives.
#' La table de valeurs prend automatiquement le nom du fichier (suffixé par le numéro de feuille) et est attachée à l'environnement courant.
#' @encoding ISO-8859-1
#' @param fichier Fichier de données à charger
#' @param nom Nom de la data frame dans laquelle stocker les données chargées
#' @param feuille Feuille à utiliser si fichier excel et en cas de feuilles mutiples (et qu'on veut accéder à une feuille au-delà de la première)
#' 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.
#' @encoding UTF-8
#' @param fichier Fichier de donnees a charger
#' @param nom Nom de la data frame dans laquelle stocker les donnees chargees
#' @param feuille Feuille a utiliser si fichier excel et en cas de feuilles mutiples (et qu'on veut acceder a une feuille au-dela de la premiere)
#' @export
#' @examples
#' charger("data.csv") #charger un fichier texte (marche aussi pour les .txt)


+ 39
- 14
R/desc.R View File

@@ -3,20 +3,21 @@
#' Produit un tableau descriptif de la table courante
#'
#' Permet de produire un tableau descriptif des variables contenues dans la table courante.
#' Si les labels et formats sont définis et chargés ils seront utilisés pour peupler le tableau.
#' Tous les paramètres ont une valeur par défaut, il est donc possible de simplement lancer desc() pour obtenir un tableau descriptif par défaut.
#' @encoding ISO-8859-1
#' @param html Nom du fichier html, par défaut "desc.html", éventuellement suffixé d'un nombre si le fichier existe déjà
#' @param titre Titre du tableau, par défaut "Descriptif global de nom_de_la_table"
#' @param table Table à utiliser, par défaut la dernière chargée
#' @param variables Vecteur de noms de variables à décrire, par défaut toutes les variables contenues dans la table
#' @param variables_neg Vecteur de noms de variables à exclure de la description
#' @param miss Booleen : afficher ou non les valeurs manquantes, par défaut FALSE
#' @param anglais Booleen : obtenir un tableau en anglais(intitulés, séparation des décimales), par défaut FALSE
#' @param note Note de bas de page, par défaut vide
#' @param nbdec Nombre de décimales après la virgule, par défaut 1
#' 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 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
#' @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 miss Booleen : afficher ou non les valeurs manquantes, par defaut FALSE
#' @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 <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_neg=NULL, miss=FALSE, anglais=FALSE, note="", nbdec=1)
desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_neg=NULL, stats=c("N","%/moy","ic95"), miss=FALSE, anglais=FALSE, note=NULL, nbdec=1)
{
nbdec_orig=getOption("digits")
dec_mark=getOption("OutDec")
@@ -42,7 +43,31 @@ desc <- function(html="desc", titre=NULL, table=NULL, variables=NULL, variables_
if (!is.null(variables)) table=table[variables]
if (!is.null(variables_neg)) table[variables_neg]<-list(NULL)
#code code code code code code
HTMLInit(file=paste0("../HTML\ Output/",html,".html"), title=titre)
HTML("<table>")
inc()
HTML("<caption>", titre, "</caption>")
HTML("<thead>")
inc()
HTML("<tr><th></th>", paste("<th>",stats,"</th>",sep="", collapse=" "), "</tr>")
dec()
HTML("</thead>")
if (!is.null(note))
{
HTML("<tfoot>")
inc()
HTML("<tr><td colspan='", length(stats)+1, "'>", note,"</td></tr>")
dec()
HTML("</tfoot>")
}
HTML("<tbody>")
inc()
dec()
HTML("</tbody>")
dec()
HTML("</table>")
HTMLEnd()
options(digits=nbdec_orig)
options(OutDec=dec_mark)

+ 73
- 0
R/html.R View File

@@ -0,0 +1,73 @@
#' Initialiser un fichier HTML
#'
#' Cree et remplit les headers pour un fichier hTML
#'
#' 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
#' @encoding UTF-8
#' @param file Nom du fichier HTML à creer, par defaut un fichier temporaire
#' @param title Titre de la page
#' @export
HTMLInit <- function(file=tempfile(pattern="report", fileext=".html"), title="")
{
assign(".HTML.file", file, pos=1)
assign(".tabs", 0, pos=1)
HTML("<!DOCTYPE html>")
HTML("<HTML>", append=F)
inc()
HTML("<HEAD>")
inc()
HTML("<meta charset='utf-8' />")
HTML("<title>", title, "</title>")
HTML("<link rel='stylesheet' href='cosmosR.css' />")
dec()
HTML("</HEAD>")
HTML("<BODY>")
inc()
}

#' Termine et clos le fichier HTML
#'
#' Ecrit le footer du fichier hTML
#'
#' Ecrit le footer du fichier initialise par HTMLInit, et en supprime l'acces.
#' @encoding UTF-8
#' @export
HTMLEnd <- function()
{
if (!exists(".HTML.file")) return
dec()
HTML("</BODY>")
dec()
HTML("</HTML>")
}

#' Ecrit dans le fichier HTML
#'
#' Ecrit dans le fichier HTML cree par HTMLInit
#'
#' Ecrit dans le fichier initialise par HTMLInit dont le nom est contenu dans .HTML.file
#' @encoding UTF-8
#' @export
HTML <- function(x, ..., append=T)
{
if (!exists(".HTML.file")) return
x <- paste0(x,...,collapse="")
tabs <- paste0(rep("\t", .tabs),collapse="")
x <- paste0(tabs, x)
cat(x,file=.HTML.file,sep="\n", append=append)
}

inc <- function()
{
assign(".tabs", .tabs+1, pos=1)
}

dec <- function()
{
if (.tabs>0) assign(".tabs", .tabs-1, pos=1)
}

+ 8
- 8
R/label.R View File

@@ -1,15 +1,15 @@
#' Etiquetter un objet
#'
#' Attribuer ou récupérer l'étiquette d'un objet
#' Attribuer ou recuperer l'etiquette d'un objet
#'
#' Méthode par défaut pour accéder et modifier l'étiquette d'un objet ou d'un élément d'un objet.
#' Il est possible de supprimer l'étiquette en passant NULL à 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.
#' @rdname label
#' @encoding ISO-8859-1
#' @param objet L'objet à nommer
#' @param value Le texte de l'étiquette
#' @encoding UTF-8
#' @param objet L'objet a nommer
#' @param value Le texte de l'etiquette
#' @export
#' @return Renvoie une chaîne de caractères contenant l'étiquette de l'objet
#' @return Renvoie une chaine de caracteres contenant l'etiquette de l'objet
#' @examples
#' label(a) <- "Une variable"
#'
@@ -60,7 +60,7 @@ label.default <- function(objet)
for (nom in names(value))
{
if (is.null(objet[[nom]]))
warning(paste(nom,"n'est pas un élément"))
warning(paste(nom,"n'est pas un element"))
else
label(objet[[nom]])<-value[[nom]]
}


+ 15
- 0
man/HTML.Rd View File

@@ -0,0 +1,15 @@
\encoding{UTF-8}
\name{HTML}
\alias{HTML}
\title{Ecrit dans le fichier HTML}
\usage{
HTML(x, ..., append = T)
}
\description{
Ecrit dans le fichier HTML cree par HTMLInit
}
\details{
Ecrit dans le fichier initialise par HTMLInit dont le nom
est contenu dans .HTML.file
}


+ 15
- 0
man/HTMLEnd.Rd View File

@@ -0,0 +1,15 @@
\encoding{UTF-8}
\name{HTMLEnd}
\alias{HTMLEnd}
\title{Termine et clos le fichier HTML}
\usage{
HTMLEnd()
}
\description{
Ecrit le footer du fichier hTML
}
\details{
Ecrit le footer du fichier initialise par HTMLInit, et en
supprime l'acces.
}


+ 20
- 0
man/HTMLInit.Rd View File

@@ -0,0 +1,20 @@
\encoding{UTF-8}
\name{HTMLInit}
\alias{HTMLInit}
\title{Initialiser un fichier HTML}
\usage{
HTMLInit(file = tempfile(pattern = "report", fileext = ".html"),
title = "")
}
\arguments{
\item{title}{Titre de la page}
}
\description{
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
}


+ 18
- 17
man/charger.Rd View File

@@ -1,32 +1,33 @@
\encoding{ISO-8859-1}
\encoding{UTF-8}
\name{charger}
\alias{charger}
\title{Charger un fichier de données dans l'environnement}
\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 données à charger}
\item{fichier}{Fichier de donnees à charger}

\item{nom}{Nom de la data frame dans laquelle stocker les
données chargées}
donnees chargees}

\item{feuille}{Feuille à utiliser si fichier excel et en
cas de feuilles mutiples (et qu'on veut accéder à une
feuille au-delà de la première)}
\item{feuille}{Feuille à utiliser si fichier excel et en
cas de feuilles mutiples (et qu'on veut acceder à une
feuille au-dela de la premiere)}
}
\description{
Charge un fichier texte ou excel contenant les données
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 données contenues dans le fichier de
données et créé une table de valeurs. Si des labels/formats
sont définis ils seront appliqués. Les variables pour
lesquelles un format est défini seront considérées comme
des variables qualitatives. La table de valeurs prend
automatiquement le nom du fichier (suffixé par le numéro de
feuille) et est attachée à 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 définis ils seront appliques. Les
variables pour lesquelles un format est défini 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 à
l'environnement courant.
}
\examples{
charger("data.csv") #charger un fichier texte (marche aussi pour les .txt)


+ 32
- 23
man/desc.Rd View File

@@ -1,46 +1,55 @@
\encoding{ISO-8859-1}
\encoding{UTF-8}
\name{desc}
\alias{desc}
\title{Descriptif global de la table courante}
\usage{
desc(html = "desc.html", titre = NULL, table = NULL, variables = NULL,
miss = FALSE, anglais = FALSE, note = "", nbdec = 1)
desc(html = "desc", titre = NULL, table = NULL,
variables = NULL, variables_neg = NULL,
stats = c("N", "\%/moy", "ic95"), miss = FALSE,
anglais = FALSE, note = NULL, nbdec = 1)
}
\arguments{
\item{html}{Nom du fichier html, par défaut "desc.html",
éventuellement suffixé d'un nombre si le fichier existe
déjà}
\item{html}{Nom du fichier html, par defaut "desc.html",
eventuellement suffixe d'un nombre si le fichier existe
deja}

\item{titre}{Titre du tableau, par défaut "Descriptif
\item{titre}{Titre du tableau, par defaut "Descriptif
global de nom_de_la_table"}

\item{table}{Table à utiliser, par défaut la dernière
chargée}
\item{table}{Table a utiliser, par defaut la derniere
chargee}

\item{variables}{Vecteur de noms de variables à décrire,
par défaut toutes les variables contenues dans la table}
\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, et, ic95, q1, med, q3. Par defaut
c("N","\%/moy","ic95")}

\item{miss}{Booleen : afficher ou non les valeurs
manquantes, par défaut FALSE}
manquantes, par defaut FALSE}

\item{anglais}{Booleen : obtenir un tableau en
anglais(intitulés, séparation des décimales), par défaut
anglais(intitules, separation des decimales), par defaut
FALSE}

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

\item{nbdec}{Nombre de décimales après la virgule, par
défaut 1}
\item{nbdec}{Nombre de decimales apres la virgule, par
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 définis et chargés ils seront utilisés pour peupler le
tableau. Tous les paramètres ont une valeur par défaut, il
est donc possible de simplement lancer desc() pour obtenir
un tableau descriptif par défaut.
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.
}


+ 14
- 14
man/label.Rd View File

@@ -1,4 +1,4 @@
\encoding{ISO-8859-1}
\encoding{UTF-8}
\name{label}
\alias{label}
\alias{label.default}
@@ -7,32 +7,32 @@
\alias{label<-.default}
\title{Etiquetter un objet}
\usage{
label(objet)
label(objet)

\method{label}{default}(objet)
label.default(objet)

label(objet) <- value
label(objet, value) <- value

\method{label}{default}(objet) <- value
label.default(objet, value) <- value

\method{label}{data.frame}(objet) <- value
label.data.frame(objet, value) <- value
}
\arguments{
\item{objet}{L'objet à nommer}
\item{objet}{L'objet a nommer}

\item{value}{Le texte de l'étiquette}
\item{value}{Le texte de l'etiquette}
}
\value{
Renvoie une chaîne de caractères contenant l'étiquette de
l'objet
Renvoie une chaine de caracteres contenant l'etiquette de
l'objet
}
\description{
Attribuer ou récupérer l'étiquette d'un objet
Attribuer ou recuperer l'etiquette d'un objet
}
\details{
Méthode par défaut pour accéder et modifier l'étiquette
d'un objet ou d'un élément d'un objet. Il est possible de
supprimer l'étiquette en passant NULL à 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"


Loading…
Cancel
Save