I’m in the process of preparing a package for CRAN.

The package is called “exportR” and since it really just consists of one 
function, I found it natural to call it “exportR” too.

The function returns a function that does the actual job, but it is set up to 
work in different ways, depending on the arguments given to its creator. In 
short:
library( exportR )
exporter <- exportR( the, arguments )
exporter( its, own, arguments )

When I run R CMD check I get two warnings:
-----------------
* checking for code/documentation mismatches ... WARNING
Functions or methods with usage in documentation object 'exportR' but not in 
code:
  exporter

* checking Rd \usage sections ... WARNING
Assignments in \usage in documentation object 'exportR':
  exporter <- exportR(fname, type = "latex", format = "4", prefix = "", 
      append = FALSE)

Functions with \usage entries need to have the appropriate \alias
entries, and all their arguments documented.
The \usage entries must correspond to syntactically valid R code.
See the chapter ‘Writing R documentation files’ in the ‘Writing R
Extensions’ manual.
————————

The first warning I understand, but I don’t know how to proceed to rid myself 
of it. Indeed it is nowhere in my code, as exportR creates it, but I still need 
to document it. I would very much appreciate advice.

The second warning I don’t understand. I do have both \name{exportR} and 
\alias{exportR} (as well as \alias{exporter}) at the top of the .Rd file. The 
function name, arguments, and default values are copied directly from the 
source, so they are identical. I changed the package name to exporteR to see if 
the problem was that the package name and the function name were the same, but 
that did not remove the warning. I used package.skeleton to create a .Rd 
template for the function and it was syntactically identical. Installing the 
package and running it works, obviously. I’m running out of ideas and any help 
is appreciated. I have this nagging feeling that I’m missing something 
obvious…? 

I post the entire contents of the .Rd file at the bottom.

Best regards,

Peder Axensten
Research engineer

Swedish University of Agricultural Sciences
Department of Forest Resource Management
Remote Sensing
SE-901 83 Umeå
Visiting address: Skogsmarksgränd
Phone: +46 90 786 85 00
peder.axens...@slu.se, www.slu.se/srh

The Department of Forest Resource Management is environmentally certified in 
accordance with ISO 14001.

——————————————————————————————————
\name{exportR}
\alias{exportR}
\alias{export}
\alias{exporter}
\alias{latex}
\alias{conversion}
\alias{exportR.latex}
\title{Easy export of R results}
\description{A flexible and simple way to export R results to LaTeX and [maybe 
later] other formats.}
\usage{
exporter <- exportR( fname, type="latex", format="4", prefix="", append=FALSE )
exporter( ..., format=NA, prefix=NA, named=FALSE )
}
\arguments{
        \item{...}{The value[s] to be exported. To name them, use the normal R 
convention: \code{exporter(first=123, second=456)}. If no such name is given, 
the variable name is used:  \code{exporter(myvar, second=456)}. For other 
expressions the naming is undetermined, be sure to name them: 
\code{exporter(myname=2*pi/sqrt(2))}. Non-valid characters will be substituted 
by \code{x}, i.e. \code{my_var1} will result in \code{\\myxvarx} in LaTeX.}
        \item{fname}{The path to the destination file.}
        \item{type}{The name of export file type, e.g. \code{exporter}. May be 
a string vector to export to more than one format at once. But presently, only 
\code{exporter} is implemented.}
        \item{format}{The numerical format to use. When given to 
\code{exportR}, it sets the default \code{.format} to be used by 
\code{exporter}. When used in a call to \code{exporter}, it is used for the 
present value[s]. The number suffix is the number of significant digits to use. 
The formats are: \tabular{llll}{
                                                        \tab Format     \tab 
Example    \tab \cr
    sprintf expression                  \tab \%<expr.>  \tab \%.5e              
\tab 10000*pi -> 3.14159*10^4\cr
        flexible                                        \tab <n>                
\tab 8                  \tab 10000*pi -> 31415.927\cr
    integer                                             \tab i                  
\tab i                  \tab 10000*pi -> 31415\cr
    float                                               \tab f<n>               
\tab f4                 \tab 10000*pi -> 3.142*10^4\cr
    float, factor 3 exponent    \tab e<n>               \tab e4                 
\tab 10000*pi -> 31.42*10^3\cr
    float, with suffix                  \tab s<n>               \tab s4         
        \tab 10000*pi -> 31.42 k\cr
    float, with 2^10 suffix             \tab b<n>               \tab b3         
        \tab 10000*pi -> 12.06 Ki\cr
        fraction                                        \tab d or d<n>  \tab d6 
                \tab pi -> 1146408/364913\cr
        fraction, with integer          \tab D or D<n>  \tab D6                 
\tab pi -> 3+51669/364913\cr
}
}
        \item{prefix}{If a naming prefix is to be used. When given to 
\code{exportR}, it sets the default \code{.prefix} to be used by 
\code{exporter}. When used in a call to \code{exporter}, it is used for the 
present and following value[s].}
        \item{append}{If \code{TRUE}, values will be appended to the 
\code{fname} file, instead of rewriting it.}
        \item{named}{If \code{TRUE}, the row names of a 2-d data structure 
(i.e. a \code{data.frame}) will be included as the first column. if 
\code{TRUE}, the item names of a 1-d data structure (i.e. a \code{list}) will 
be included.}
}
\details{
It's actually the function returned by \code{exportR} that does the job, so 
typically \code{exportR} is called only once. But more than one such function 
can be active at the same time.

When the returned function (called \code{exporter}, above) is created, a header 
is written to the file \code{fname}. During subsequent calls, actual values are 
appended to the file.

Presently, the following classes are recognized: \code{NULL}, \code{logical} 
(including \code{NA}), \code{character}, \code{factor}, \code{call} (it's 
evaluated through \code{eval}), \code{numeric} (including \code{INF} and 
\code{NaN}), \code{complex} (including \code{INF}), \code{matrix}, 
\code{array}, \code{list}, \code{pairlist}, \code{table}, \code{data.frame}, 
\code{lm}, \code{randomForest}, \code{randomForest.formula}, \code{ts}, 
\code{bigz} and \code{bigq} from package \code{gmp}, \code{int64} and 
\code{uint64} from package \code{int64}, and \code{integer64} from package 
\code{bit64}. Other classes are processed with \code{as.character( value )}. 

Table-like structures defines three commands for each structure:
\code{nameColumns,} that can be used as a column-format,
\code{nameHeader,} contains the column names, and
\code{nameBody} contains the actual table contents.
Example: \code{\\begin{tabular}{\\nameColumns}\\nameHeader\\hline 
\\nameBody\\end{tabular}}

Some structures, like \code{lm}, may define even more variants. Try, and see 
what is generated!

Support for more classes can be implemented by defining functions 
\code{as.exportR.<your-class>}. Call \code{as.exportR} on each item in your 
class to get the correct output. See \code{as.exportR.lm} in file 
\code{R/exportR.R} as an example on how to do this.

Output formats presently supported: only \code{LaTeX}. Support for more formats 
can be implemented by writing a function \code{exportR.<your-format>} in the 
same manner as \code{exportR.latex}, present in the file \code{R/latexR.R}.
}
\value{
\code{exportR} returns a function that is used to output formatted values.

This [returned] function returns no value, when called. 
}
\author{Peder Axensten}
\examples{
library(exporteR)
ltx <- exportR( tempfile( pattern = "test", fileext = ".tex" ) )

x <- 2*pi
ltx(x)                    # Writes \newcommand{\x}{6.283}
ltx(two_pi=2*pi)          # Writes \newcommand{\twoxpi}{6.283}

# Alternatively, in one go:
ltx(x, two_pi=2*pi)
}
\keyword{export}
\keyword{latex}
\keyword{utilities}
\keyword{conversion}
——————————————————————————————————

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to