[Rd] New behavior when running script in package directory?

Bill Dunlap w||||@mwdun|@p @end|ng |rom gm@||@com
Wed Jun 21 18:01:00 CEST 2023


If ./Rprofile is not present and ~/.Rprofile is present then R will run the
latter at startup.  Do you have a ~/.Rprofile that defines a ss() function?

-Bill

On Wed, Jun 21, 2023 at 8:50 AM Dominick Samperi <djsamperi using gmail.com>
wrote:

> Thanks, I checked for .Rprofile and .RData files. They are not present.
> I also tried renaming my .emacs.d file in case the problem is due to
> my Emacs configuration, but this didn't change anything.
>
> If I go to package/R, start R, and use source('foo.R'), there is no
> problem.
>
> But if I use Emacs/ESS to run the script foo.R (with no .emacs.d) I get
> an error referring to a temp file /tmp/foo.R!djSwRn, namely
>
> Error in ss(file, echo = visibly, local = local, print.eval = output,  :
>   /tmp/foo.R!djSwRn:2:0: unexpected end of input
> 1: foo <- function(secs) {
>
> Here are the contents of foo.R:
> foo <- function(secs) {
>   return(secs)
> }
>
> What seems to be happening is this. After reading the script into Emacs and
> using Ctrl-n to start emacs, R starts, setwd(<path to packageA/R>) is run,
> and then the signal package is attached (a dependency of packageA), and
> I get the error message. There is no problem when Emacs is used to run
> the script in my home directory.
>
> This raises a couple of questions:
> 1. Why does Emacs/ESS behave differently depending on the
> current working directory?
> 2. Why is the signal package loaded automatically?
> 3. Why is that temporary file /tmp/foo.R!djSwRn created?
> 4. What is that function ss() in the error message referring to?
> 5. Could this be a virus? Under Ubuntu?
>
> Thanks,
> Dominick
>
>
>
>
> On Wed, Jun 21, 2023 at 2:17 AM Jan van der Laan <rhelp using eoos.dds.nl>
> wrote:
>
> >
> > Could there be a .Rprofile or .RData file in the directory where you
> > start R? These are run/loaded when you start R when present (with the
> > default arguments when starting R).
> >
> > HTH,
> > Jan
> >
> >
> >
> > On 20-06-2023 23:38, Dominick Samperi wrote:
> > > When I run a script foo.R containing some trivial code in my home
> > > directory, via Emacs/ESS, everything works as expected: R
> > > starts, and a setwd() command to set the working directory is
> > > run automatically before the code in the script is run.
> > >
> > > But if I copy foo.R to some package/R directory strange
> > > things happen. When I use Emacs/ESS to run the script
> > > in its new location, R starts, and setwd() is called to set
> > > the working directory, but then one or more libraries that the
> > > package depends on are loaded, even though I am using no
> > > libraries in foo.R.
> > >
> > > Now consider foo.R that contains the following trivial code:
> > > secsToRDateTime <- function(secs) {
> > >    day2sec <- 60*60*24
> > >    days <- secs/day2sec
> > > }
> > >
> > > When I try to run this from package/R I get...
> > >
> > > Error in ss(file, echo = visibly, local = local, print.eval = output,
> :
> > >    /tmp/gpstime.R!CuSewT:2:0: unexpected end of input
> > > 1: secsToRDateTime <- function(secs) {
> > >     ^
> > >
> > > As I said, there are no problems when the script is run from my
> > > home directory. This suggests that test scripts can no longer be
> > > tested in a package's R directory?
> > >
> > > Is this true?
> > >
> > > Thanks,
> > > Dominick
> > >
> > >       [[alternative HTML version deleted]]
> > >
> > > ______________________________________________
> > > R-devel using r-project.org mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
> > ______________________________________________
> > R-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list