[R] does pdf() work inside of a function?

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Mon Jul 29 01:58:07 CEST 2019


On 28/07/2019 7:40 p.m., Anuj Goyal wrote:
> Why does pdf() work outside a function, but not inside it?

Try a simpler example, and you'll see that it does, e.g.

  f <- function() { pdf("temp.pdf"); plot(1, main="inside f"); dev.off() }

   You're doing very complicated things in your function; quantmod does 
very complicated things in getSymbols().  One of those complicated 
things is breaking, it's not pdf() that's breaking.

Duncan Murdoch

> 
> R version 3.6.0 (2019-04-26) on Mac 10.14.5
> 
> # R --silent --vanilla < s2.r
> library(quantmod)
> options("getSymbols.warning4.0"=FALSE)
> options("getSymbols.yahoo.warning"=FALSE)
> 
> gs <- function(f) {
>    csvText <- "s,n\nAFL,AFLAC\nAIG,AIG"
>    csv <- read.csv(text=csvText, stringsAsFactors = FALSE)
>    symVec <- getSymbols(as.vector(csv$s))
> 
>    # create PDF
>    fname = paste0(f,".pdf")
>    pdf(file = fname)
>    par(mfrow = c( 4,2 ) )
>    mapply (chart_Series, mget(symVec))
>    dev.off()
> }
> gs("t")
> 
> csvText <- "s,n\nAFL,AFLAC\nAIG,AIG"
> csv <- read.csv(text=csvText, stringsAsFactors = FALSE)
> symVec <- getSymbols(as.vector(csv$s))
> 
> # create PDF
> pdf(file = "t2.pdf")
> par(mfrow = c( 4,2 ) )
> mapply (chart_Series, mget(symVec))
> dev.off()
> 
> 
>>>> output
> 
> -rw-r--r--@ 1 b  staff     4053 Jul 28 16:15 t.pdf
> -rw-r--r--@ 1 b  staff   154506 Jul 28 16:15 t2.pdf
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>



More information about the R-help mailing list