Re: [R-pkg-devel] Printing examples conditionally on another package in Suggests
This was what I was looking for! Thank you! I apologize for my insufficient google-fu today. On Fri, Aug 10, 2018 at 12:55 PM Georgi Boshnakov < georgi.boshna...@manchester.ac.uk> wrote: > Maybe Martin Maechler's post in response to a similar question answers > your question: > > https://stat.ethz.ch/pipermail/r-package-devel/2018q2/002780.html > > In summary, wrap the code in: > > if (requireNamespace("MASS", quietly = TRUE)) withAutoprint({ > > your code > > }) > > > Georgi Boshnakov > > -Original Message- > From: R-package-devel [mailto:r-package-devel-boun...@r-project.org] On > Behalf Of Zhian Kamvar > Sent: 10 August 2018 12:26 > To: Alexandre Courtiol > Cc: R-list Package Devel > Subject: Re: [R-pkg-devel] Printing examples conditionally on another > package in Suggests > > Thanks, but my use of print here is really a toy example, not necessarily > the end-goal. This strategy would fail if I were to attempt load a data set > from some_package or use any functions from some_package. > > A more specific example of what I'm dealing with is here: > > http://www.repidemicsconsortium.org/incidence/reference/get_counts.html#examples > . > This is what the user would see if they were to use example(get_counts). > > On Fri, Aug 10, 2018 at 12:14 PM Alexandre Courtiol < > alexandre.court...@gmail.com> wrote: > > > Perhaps then something like: > > Print <- function(x) if (requireNamespace("some.package", quietly = > TRUE)) > > print(x) > > Print("Hi") > > Print("Hello") > > Print("Goodbye") > > > > > > > > On Fri, 10 Aug 2018 at 12:33, Zhian Kamvar wrote: > > > >> Mainly, I would like to see the value printed after the print statement > >> like it would appear in a normal R session: > >> > >> print("Hi") > >> #> [1] "Hi" > >> print("Hello") > >> #> [1] "Hello" > >> print("Goodbye") > >> #> [1] "Goodbye" > >> > >> > >> On Fri, Aug 10, 2018 at 11:28 AM Alexandre Courtiol < > >> alexandre.court...@gmail.com> wrote: > >> > >>> Hi Zhian, > >>> Could you please explain what behaviour you would like to obtain? > >>> I really don't understand what your problem is from your description... > >>> Alex > >>> > >>> On Fri, 10 Aug 2018 at 12:18, Zhian Kamvar wrote: > >>> > >>>> Hello, > >>>> > >>>> I know it's good practice to use > >>>> > >>>> if (require("some_package")) { > >>>> # some code that needs some_package > >>>> } > >>>> > >>>> In R examples that needs a package listed in Suggests. > >>>> > >>>> The problem with this approach is that if there are any print > statements > >>>> within this structure, then they only get printed after the braces and > >>>> not > >>>> after the lines like so: > >>>> > >>>> if (TRUE) { > >>>> print("Hi") > >>>> print("Hello") > >>>> print("Goodbye") > >>>> } > >>>> #> [1] "Hi" > >>>> #> [1] "Hello" > >>>> #> [1] "Goodbye" > >>>> > >>>> The only way I can think of circumventing this is by replacing the if > >>>> statement with a stopifnot statement: > >>>> > >>>> stopifnot(require("some_package")) > >>>> # some code that needs some_package > >>>> > >>>> But, I'm not sure if that's okay to do in a function example. Does > >>>> anyone > >>>> have any ideas or suggestions on how to help with this kind of thing? > >>>> > >>>> Cheers, > >>>> Zhian > >>>> > >>>> [[alternative HTML version deleted]] > >>>> > >>>> __ > >>>> R-package-devel@r-project.org mailing list > >>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel > >>>> > >>> > >>> > >>> -- > >>> Alexandre Courtiol > >>> > >>> http://sites.google.com/site/alexandrecourtiol/home > >>> > >>> *"Science is the belief in the ignorance of experts"*, R. Feynman > >>> > >> > > > > -- > > Alexandre Courtiol > > > > http://sites.google.com/site/alexandrecourtiol/home > > > > *"Science is the belief in the ignorance of experts"*, R. Feynman > > > > [[alternative HTML version deleted]] > > __ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel > [[alternative HTML version deleted]] __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Printing examples conditionally on another package in Suggests
Maybe Martin Maechler's post in response to a similar question answers your question: https://stat.ethz.ch/pipermail/r-package-devel/2018q2/002780.html In summary, wrap the code in: if (requireNamespace("MASS", quietly = TRUE)) withAutoprint({ your code }) Georgi Boshnakov -Original Message- From: R-package-devel [mailto:r-package-devel-boun...@r-project.org] On Behalf Of Zhian Kamvar Sent: 10 August 2018 12:26 To: Alexandre Courtiol Cc: R-list Package Devel Subject: Re: [R-pkg-devel] Printing examples conditionally on another package in Suggests Thanks, but my use of print here is really a toy example, not necessarily the end-goal. This strategy would fail if I were to attempt load a data set from some_package or use any functions from some_package. A more specific example of what I'm dealing with is here: http://www.repidemicsconsortium.org/incidence/reference/get_counts.html#examples. This is what the user would see if they were to use example(get_counts). On Fri, Aug 10, 2018 at 12:14 PM Alexandre Courtiol < alexandre.court...@gmail.com> wrote: > Perhaps then something like: > Print <- function(x) if (requireNamespace("some.package", quietly = TRUE)) > print(x) > Print("Hi") > Print("Hello") > Print("Goodbye") > > > > On Fri, 10 Aug 2018 at 12:33, Zhian Kamvar wrote: > >> Mainly, I would like to see the value printed after the print statement >> like it would appear in a normal R session: >> >> print("Hi") >> #> [1] "Hi" >> print("Hello") >> #> [1] "Hello" >> print("Goodbye") >> #> [1] "Goodbye" >> >> >> On Fri, Aug 10, 2018 at 11:28 AM Alexandre Courtiol < >> alexandre.court...@gmail.com> wrote: >> >>> Hi Zhian, >>> Could you please explain what behaviour you would like to obtain? >>> I really don't understand what your problem is from your description... >>> Alex >>> >>> On Fri, 10 Aug 2018 at 12:18, Zhian Kamvar wrote: >>> >>>> Hello, >>>> >>>> I know it's good practice to use >>>> >>>> if (require("some_package")) { >>>> # some code that needs some_package >>>> } >>>> >>>> In R examples that needs a package listed in Suggests. >>>> >>>> The problem with this approach is that if there are any print statements >>>> within this structure, then they only get printed after the braces and >>>> not >>>> after the lines like so: >>>> >>>> if (TRUE) { >>>> print("Hi") >>>> print("Hello") >>>> print("Goodbye") >>>> } >>>> #> [1] "Hi" >>>> #> [1] "Hello" >>>> #> [1] "Goodbye" >>>> >>>> The only way I can think of circumventing this is by replacing the if >>>> statement with a stopifnot statement: >>>> >>>> stopifnot(require("some_package")) >>>> # some code that needs some_package >>>> >>>> But, I'm not sure if that's okay to do in a function example. Does >>>> anyone >>>> have any ideas or suggestions on how to help with this kind of thing? >>>> >>>> Cheers, >>>> Zhian >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> __ >>>> R-package-devel@r-project.org mailing list >>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel >>>> >>> >>> >>> -- >>> Alexandre Courtiol >>> >>> http://sites.google.com/site/alexandrecourtiol/home >>> >>> *"Science is the belief in the ignorance of experts"*, R. Feynman >>> >> > > -- > Alexandre Courtiol > > http://sites.google.com/site/alexandrecourtiol/home > > *"Science is the belief in the ignorance of experts"*, R. Feynman > [[alternative HTML version deleted]] __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Printing examples conditionally on another package in Suggests
Thanks, but my use of print here is really a toy example, not necessarily the end-goal. This strategy would fail if I were to attempt load a data set from some_package or use any functions from some_package. A more specific example of what I'm dealing with is here: http://www.repidemicsconsortium.org/incidence/reference/get_counts.html#examples. This is what the user would see if they were to use example(get_counts). On Fri, Aug 10, 2018 at 12:14 PM Alexandre Courtiol < alexandre.court...@gmail.com> wrote: > Perhaps then something like: > Print <- function(x) if (requireNamespace("some.package", quietly = TRUE)) > print(x) > Print("Hi") > Print("Hello") > Print("Goodbye") > > > > On Fri, 10 Aug 2018 at 12:33, Zhian Kamvar wrote: > >> Mainly, I would like to see the value printed after the print statement >> like it would appear in a normal R session: >> >> print("Hi") >> #> [1] "Hi" >> print("Hello") >> #> [1] "Hello" >> print("Goodbye") >> #> [1] "Goodbye" >> >> >> On Fri, Aug 10, 2018 at 11:28 AM Alexandre Courtiol < >> alexandre.court...@gmail.com> wrote: >> >>> Hi Zhian, >>> Could you please explain what behaviour you would like to obtain? >>> I really don't understand what your problem is from your description... >>> Alex >>> >>> On Fri, 10 Aug 2018 at 12:18, Zhian Kamvar wrote: >>> Hello, I know it's good practice to use if (require("some_package")) { # some code that needs some_package } In R examples that needs a package listed in Suggests. The problem with this approach is that if there are any print statements within this structure, then they only get printed after the braces and not after the lines like so: if (TRUE) { print("Hi") print("Hello") print("Goodbye") } #> [1] "Hi" #> [1] "Hello" #> [1] "Goodbye" The only way I can think of circumventing this is by replacing the if statement with a stopifnot statement: stopifnot(require("some_package")) # some code that needs some_package But, I'm not sure if that's okay to do in a function example. Does anyone have any ideas or suggestions on how to help with this kind of thing? Cheers, Zhian [[alternative HTML version deleted]] __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel >>> >>> >>> -- >>> Alexandre Courtiol >>> >>> http://sites.google.com/site/alexandrecourtiol/home >>> >>> *"Science is the belief in the ignorance of experts"*, R. Feynman >>> >> > > -- > Alexandre Courtiol > > http://sites.google.com/site/alexandrecourtiol/home > > *"Science is the belief in the ignorance of experts"*, R. Feynman > [[alternative HTML version deleted]] __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Printing examples conditionally on another package in Suggests
Perhaps then something like: Print <- function(x) if (requireNamespace("some.package", quietly = TRUE)) print(x) Print("Hi") Print("Hello") Print("Goodbye") On Fri, 10 Aug 2018 at 12:33, Zhian Kamvar wrote: > Mainly, I would like to see the value printed after the print statement > like it would appear in a normal R session: > > print("Hi") > #> [1] "Hi" > print("Hello") > #> [1] "Hello" > print("Goodbye") > #> [1] "Goodbye" > > > On Fri, Aug 10, 2018 at 11:28 AM Alexandre Courtiol < > alexandre.court...@gmail.com> wrote: > >> Hi Zhian, >> Could you please explain what behaviour you would like to obtain? >> I really don't understand what your problem is from your description... >> Alex >> >> On Fri, 10 Aug 2018 at 12:18, Zhian Kamvar wrote: >> >>> Hello, >>> >>> I know it's good practice to use >>> >>> if (require("some_package")) { >>> # some code that needs some_package >>> } >>> >>> In R examples that needs a package listed in Suggests. >>> >>> The problem with this approach is that if there are any print statements >>> within this structure, then they only get printed after the braces and >>> not >>> after the lines like so: >>> >>> if (TRUE) { >>> print("Hi") >>> print("Hello") >>> print("Goodbye") >>> } >>> #> [1] "Hi" >>> #> [1] "Hello" >>> #> [1] "Goodbye" >>> >>> The only way I can think of circumventing this is by replacing the if >>> statement with a stopifnot statement: >>> >>> stopifnot(require("some_package")) >>> # some code that needs some_package >>> >>> But, I'm not sure if that's okay to do in a function example. Does anyone >>> have any ideas or suggestions on how to help with this kind of thing? >>> >>> Cheers, >>> Zhian >>> >>> [[alternative HTML version deleted]] >>> >>> __ >>> R-package-devel@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-package-devel >>> >> >> >> -- >> Alexandre Courtiol >> >> http://sites.google.com/site/alexandrecourtiol/home >> >> *"Science is the belief in the ignorance of experts"*, R. Feynman >> > -- Alexandre Courtiol http://sites.google.com/site/alexandrecourtiol/home *"Science is the belief in the ignorance of experts"*, R. Feynman [[alternative HTML version deleted]] __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Printing examples conditionally on another package in Suggests
Hi Zhian, Could you please explain what behaviour you would like to obtain? I really don't understand what your problem is from your description... Alex On Fri, 10 Aug 2018 at 12:18, Zhian Kamvar wrote: > Hello, > > I know it's good practice to use > > if (require("some_package")) { > # some code that needs some_package > } > > In R examples that needs a package listed in Suggests. > > The problem with this approach is that if there are any print statements > within this structure, then they only get printed after the braces and not > after the lines like so: > > if (TRUE) { > print("Hi") > print("Hello") > print("Goodbye") > } > #> [1] "Hi" > #> [1] "Hello" > #> [1] "Goodbye" > > The only way I can think of circumventing this is by replacing the if > statement with a stopifnot statement: > > stopifnot(require("some_package")) > # some code that needs some_package > > But, I'm not sure if that's okay to do in a function example. Does anyone > have any ideas or suggestions on how to help with this kind of thing? > > Cheers, > Zhian > > [[alternative HTML version deleted]] > > __ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel > -- Alexandre Courtiol http://sites.google.com/site/alexandrecourtiol/home *"Science is the belief in the ignorance of experts"*, R. Feynman [[alternative HTML version deleted]] __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel