Skip to content

[Q] R CMD check signals error on code that works from UI

3 messages · Paul Roebuck, Sklyar, Oleg (London), Peter Dalgaard

#
Add the following to example section of a dot-Rd manpage:

## :WHY: The following kills R CMD check but runs fine on console.
foos <- c("aaa", "bbb", "ccc")
cat(sapply(foos,
           function(foo) {
               sprintf("name: %-18s upper: %s\n",
                       foo,
                       toupper(foo))
           }), sep="")


R CMD check <package> stops with error:

...
* checking examples ... ERROR
Running examples in '<package>-Ex.R' failed.
The error most likely occurred in:
   ...
+            function(foo) {
+                sprintf("name:
+                        foo,
+                        toupper(foo))
+            }), sep="")
+
+
+
+ cleanEx(); nameEx("sc80-registerNormalizationMethod")
Error: unexpected string constant in:
"
cleanEx(); nameEx(""
Execution halted


Yet on console, it provides the expected:

name: aaa                upper: AAA
name: bbb                upper: BBB
name: ccc                upper: CCC


How do I work around this for manpage?


----------------------------------------------------------
SIGSIG -- signature too long (core dumped)
#
Because there is a % sign, which is stripped out by LaTeX used to build
the help system as a comment. Just look at how your example code is
output -- the string is unterminated because the matching quote is
masked by % latex comment

Dr Oleg Sklyar
Research Technologist
AHL / Man Investments Ltd
+44 (0)20 7144 3107
osklyar at maninvestments.com
**********************************************************************
Please consider the environment before printing this email or its attachments.
The contents of this email are for the named addressees ...{{dropped:19}}
#
Sklyar, Oleg (London) wrote:
Minor quibble: Actually, LaTeX is not used at this stage, but the Rd
format is LaTeX-like, and in particular uses the same "%" comment
character.

In any case, the fix is to excape the "%" as "\%", whenever you need one
in an Rd file, even inside code examples.

	-pd