Skip to content

filenames with special characters in the R/ directory of a package?

4 messages · Barry Rowlingson, Brian Ripley, blue sky

#
According to R-exts.pdf (page 3):
For maximal portability filenames should only
contain only ASCII characters not excluded already (that is
A-Za-z0-9._!#$%&+,;=@^(){}?[]

I have some files with special characters like '[' and '%' e.g.
'[.set.R'. I also have some functions that also have those special
characters defined in those files exported in NAMESPACE.

I use the following command to install. And I get no warning or errors.

R CMD INSTALL -d -l my_custom_dir my.pkg

I then load the package. I get the following errors and warnings. I
changed a file to one without these special characters. Then the
corresponding warning/error disappears. Is it the case that there
should never be files with special characters as names?
Error in namespaceExport(ns, exports) :
 undefined exports: %is%
In addition: Warning message:
S3 methods ?[.set? were declared in NAMESPACE but not found
Error: package/namespace load failed for 'my.pkg'
#
On Fri, Feb 12, 2010 at 5:35 AM, blue sky <bluesky315 at gmail.com> wrote:
That character list in your extract from R-exts.pdf is a list of
non-special characters. And [ and % are in there.

 It's clarification of three sentences previous, which says:

"the characters ?"?, ?*?, ?:?, ?/?, ?<?, ?>?, ???, ?\?, and ?|? are
not allowed in file names"
Have you done an R CMD check on your package? I suspect a problem in
your NAMESPACE file, but it's not related to "special characters".

Barry
#
'Writing R Extensions' does say what names are allowed in the R 
directory (at the start of section 1.1.3 in section-numbered formats). 
To wit

   The R subdirectory contains R code files, only. The code files to be
   installed must start with an ASCII (lower or upper case) letter or
   digit and have one of the extensions .R, .S, .q, .r, or .s.

'[.set.R' does not meet that rule, and so is skipped.  This is not 
something R CMD check reports, since the wording implies that other 
names can be used for files to be not installed.
On Fri, 12 Feb 2010, Barry Rowlingson wrote:

            

  
    
#
It is strange to me why the filename must start with a letter or
digit, while the following characters can be something like '['. Is
there a reason why it is designed in this way? So that I can
understand the design principle rather than memorizing the facts
derived from the principle.

On Fri, Feb 12, 2010 at 5:10 AM, Prof Brian Ripley
<ripley at stats.ox.ac.uk> wrote: