problematic dev.off() after running examples without plots

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

problematic dev.off() after running examples without plots

R devel mailing list
Dear all,

When running R CMD check on our package, we get an error on the examples.

Error in grDevices::dev.off() :
     cannot shut down device 1 (the null device)

None of the examples in our package generates plots. grDevices::dev.off()
is code added by R CMD check. A workaround is to have at least one example
which has some plot. Is there a better solution? We are using R 3.5.1

Best regards,

ir. Thierry Onkelinx
Statisticus / Statistician

Vlaamse Overheid / Government of Flanders
INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE AND
FOREST
Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality Assurance
[hidden email]
Havenlaan 88 bus 73, 1000 Brussel
www.inbo.be

///////////////////////////////////////////////////////////////////////////////////////////
To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey
///////////////////////////////////////////////////////////////////////////////////////////

<https://www.inbo.be>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: problematic dev.off() after running examples without plots

Martin Maechler
>>>>> Thierry Onkelinx via R-devel
>>>>>     on Tue, 20 Nov 2018 14:16:20 +0100 writes:

    > Dear all, When running R CMD check on our package, we get
    > an error on the examples.

    > Error in grDevices::dev.off() :
    >  cannot shut down device 1 (the null device)

    > None of the examples in our package generates
    > plots. grDevices::dev.off() is code added by R CMD
    > check.

Yes, but there's also code added at the very beginning of the
examples R script ( <pkg>-Ex.R ) which opens a pdf device:

  grDevices::pdf.options(width = 7, height = 7, paper = "special", reset = TRUE)
  grDevices::pdf(paste(pkgname, "-Ex.pdf", sep=""), encoding = "ISOLatin1")

and so things should work and do work well for packages without any plots.

You must be doing something particularly strange in some of *your*
examples such as closing all existing devices -- something you should not do:

As a good citizen you close graphic devices that you open but not others.

    > A workaround is to have at least one example which
    > has some plot. Is there a better solution?

Yes, find the example in your package which does the above
"strange thing" and modify that.

Best,
Martin Maechler
ETH Zurich and R Core Team


    > We are using R 3.5.1

    > Best regards,

    > ir. Thierry Onkelinx Statisticus / Statistician

    > Vlaamse Overheid / Government of Flanders INSTITUUT VOOR
    > NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE
    > AND FOREST Team Biometrie & Kwaliteitszorg / Team
    > Biometrics & Quality Assurance [hidden email]
    > Havenlaan 88 bus 73, 1000 Brussel www.inbo.be

    > ///////////////////////////////////////////////////////////////////////////////////////////
    > To call in the statistician after the experiment is done
    > may be no more than asking him to perform a post-mortem
    > examination: he may be able to say what the experiment
    > died of. ~ Sir Ronald Aylmer Fisher The plural of anecdote
    > is not data. ~ Roger Brinner The combination of some data
    > and an aching desire for an answer does not ensure that a
    > reasonable answer can be extracted from a given body of
    > data.  ~ John Tukey
    > ///////////////////////////////////////////////////////////////////////////////////////////

    > <https://www.inbo.be>

    > [[alternative HTML version deleted]]

    > ______________________________________________
    > [hidden email] mailing list
    > https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: problematic dev.off() after running examples without plots

R devel mailing list
Dear Martin,

Thanks for the feedback. After some more digging, I found that the problem
was caused by a function which we imported from another package. That
function closes open devices as a side-effect.

Best regards,

ir. Thierry Onkelinx
Statisticus / Statistician

Vlaamse Overheid / Government of Flanders
INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE AND
FOREST
Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality Assurance
[hidden email]
Havenlaan 88 bus 73, 1000 Brussel
www.inbo.be

///////////////////////////////////////////////////////////////////////////////////////////
To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey
///////////////////////////////////////////////////////////////////////////////////////////

<https://www.inbo.be>


Op wo 21 nov. 2018 om 10:47 schreef Martin Maechler <
[hidden email]>:

> >>>>> Thierry Onkelinx via R-devel
> >>>>>     on Tue, 20 Nov 2018 14:16:20 +0100 writes:
>
>     > Dear all, When running R CMD check on our package, we get
>     > an error on the examples.
>
>     > Error in grDevices::dev.off() :
>     >  cannot shut down device 1 (the null device)
>
>     > None of the examples in our package generates
>     > plots. grDevices::dev.off() is code added by R CMD
>     > check.
>
> Yes, but there's also code added at the very beginning of the
> examples R script ( <pkg>-Ex.R ) which opens a pdf device:
>
>   grDevices::pdf.options(width = 7, height = 7, paper = "special", reset =
> TRUE)
>   grDevices::pdf(paste(pkgname, "-Ex.pdf", sep=""), encoding = "ISOLatin1")
>
> and so things should work and do work well for packages without any plots.
>
> You must be doing something particularly strange in some of *your*
> examples such as closing all existing devices -- something you should not
> do:
>
> As a good citizen you close graphic devices that you open but not others.
>
>     > A workaround is to have at least one example which
>     > has some plot. Is there a better solution?
>
> Yes, find the example in your package which does the above
> "strange thing" and modify that.
>
> Best,
> Martin Maechler
> ETH Zurich and R Core Team
>
>
>     > We are using R 3.5.1
>
>     > Best regards,
>
>     > ir. Thierry Onkelinx Statisticus / Statistician
>
>     > Vlaamse Overheid / Government of Flanders INSTITUUT VOOR
>     > NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE
>     > AND FOREST Team Biometrie & Kwaliteitszorg / Team
>     > Biometrics & Quality Assurance [hidden email]
>     > Havenlaan 88 bus 73, 1000 Brussel www.inbo.be
>
>     >
> ///////////////////////////////////////////////////////////////////////////////////////////
>     > To call in the statistician after the experiment is done
>     > may be no more than asking him to perform a post-mortem
>     > examination: he may be able to say what the experiment
>     > died of. ~ Sir Ronald Aylmer Fisher The plural of anecdote
>     > is not data. ~ Roger Brinner The combination of some data
>     > and an aching desire for an answer does not ensure that a
>     > reasonable answer can be extracted from a given body of
>     > data.  ~ John Tukey
>     >
> ///////////////////////////////////////////////////////////////////////////////////////////
>
>     > <https://www.inbo.be>
>
>     >   [[alternative HTML version deleted]]
>
>     > ______________________________________________
>     > [hidden email] mailing list
>     > https://stat.ethz.ch/mailman/listinfo/r-devel
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel