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 descmaster
@@ -3,3 +3,5 @@ | |||
.RData | |||
Read-and-delete-me | |||
desktop.ini | |||
Ott | |||
*.xls |
@@ -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' |
@@ -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) |
@@ -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) | |||
@@ -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) |
@@ -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) | |||
} |
@@ -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]] | |||
} | |||
@@ -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 | |||
} | |||
@@ -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. | |||
} | |||
@@ -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 | |||
} | |||
@@ -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) | |||
@@ -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. | |||
} | |||
@@ -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" | |||