On 28/08/2008 10:46 AM, Marie Pierre Sylvestre wrote:
Dear R users,

I am currently writing a R package and to do so I am following the
guidelines in manual 'Writing R extensions'.

In Section 3.1, it is suggested to tidy up the code using a file
containing the following:
options(keep.source = FALSE)
source("myfuns..R")
dump(ls(all = TRUE), file = new.myfuns.R")

I have done this for my own packages and although it runs, I get several
warnings of the type:

Warning message:
In dump(ls(all = TRUE), file = "PermAlgo.R") : deparse may be incomplete

I am clueless as to what this means.

Even if I try to tidy only one function from my code, I get the warning.


E.g. the file lala.R contains only this:
partialHazards <- function(t, v, covArray, betas){   exp( covArray[v,t,]
%*% betas ) }

the file tidylala.R contains:

options(keep.source = FALSE)
source("lala.R")
dump(ls(all = TRUE), file = "newlala.R")

On Linux I run:

R --vanilla < tidylala.R
Then I obtain:

Warning message:
In dump(ls(all = TRUE), file = "newlala.R") : deparse may be incomplete

The file newlala.R looks like this:

`partialHazards` <-
function (t, v, covArray, betas)
{
    exp(covArray[v, t, ] %*% betas)
}

What does the warning mean? Can I simply ignore it?

I've now taken a look, and this really was a bug. source() was partially ignoring options(keep.source = FALSE), and this confused dump(). I've fixed it in R-patched.

I've also clarified the advice about tidying up code, by adding a warning that following it will delete all of your comments. I think you're better off writing it in a tidy way in the first place, or using a smart editor to reformat it. R retains enough information to write a code prettifier that preserves comments, but I don't know of one.

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to