[Rd] system.file() to read a text file from a vignette

Duncan Murdoch murdoch.duncan at gmail.com
Wed Mar 23 15:21:53 CET 2011


On 23/03/2011 10:03 AM, Michael Friendly wrote:
> [Env: R 2.12.2, WinXp]
>
> In a vignette for the vcdExtra package, I had a text file, tv.dat under
> data/, that I used in the vignette as
>
> <<tv1,results=verbatim>>=
> tv.data<-read.table(system.file("data","tv.dat",package="vcdExtra"))
> head(tv.data,5)
> @
>
> I was told that this now generates a warning for non-Rdata files in R
> CMD check. But I'm now confused about
> where to put this and how to use system.file() in the vignette to read
> it. The R-exts.pdf says
>
> The R working directory for all vignette tests in R CMD
> check is the installed version of the ‘doc’ subdirectory. Make sure all
> files needed by the vignette
> (data sets, . . . ) are accessible by either placing them in the
> ‘inst/doc’ hierarchy of the source
> package, or using calls to system.file().
>
> So, I moved this file to inst/doc/extdata/tv.dat, and changed the
> vignette to
>
> <<tv1,results=verbatim>>=
> tv.data<-read.table(system.file("inst","doc","extdata","tv.dat",package="vcdExtra"))
> head(tv.data,5)
> @
>
> But I get the error:
> Error: processing vignette 'vcd-tutorial.Rnw' failed with diagnostics:
> chunk 23 (label=tv1)
> Error in read.table(system.file("inst", "doc", "extdata", "tv.dat",
> package = "vcdExtra")) :
> no lines available in input
>
> How can I fix this?

Everything in the "inst" directory is moved up a level when it is 
installed.  So you shouldn't mention "inst" in its path.

Duncan Murdoch



More information about the R-devel mailing list