[R] Sweave and scan()

Charles C. Berry cberry at tajo.ucsd.edu
Tue Jul 27 18:52:28 CEST 2010


On Tue, 27 Jul 2010, Murray Jorgensen wrote:

> I am introducing the scan() function to my class. Consider the following file 
> (Scanexamp.Rnw )
>
> \documentclass[12pt]{article}
>
> \begin{document}
> <<>> =
> height = scan()
> 64 62 66 65 62
> 69 72 72 70
>
> part = scan(what = character(0))
>  "Soprano" "Soprano" "Soprano"
>  "Alto"    "Alto"    "Tenor"
>  "Tenor"   "Bass"    "Bass"
>
> sh = data.frame(height, part)
> sh
> @
> \end{document}
>
> Now what happens when I attempt to Sweave this is
>
>>  Sweave("scanexamp.Rnw")
> Writing to file scanexamp.tex
> Processing code chunks ...
>  1 : echo term verbatim
>
> Error:  chunk 1
> Error in parse(text = chunk) : unexpected numeric constant in:
> "height = scan()
> 64 62"
>>

Right.

Sweave is trying to parse the whole chunk.

It cannot parse "64 62 66 65 62". (And the command line cannot parse it 
either - try typing it at the R prompt.)

If you put each number on a separate line, Sweave will parse it, but when 
scan() runs, it will prompt for input and accept it from STDIN just as 
when run from the command line. Which probably isn't what you want.

I'd guess the path of least resistance is to have a bit of deception.

Use two chunks - one like that above but with eval=F and another with 
eval=T,echo=F with code like this

tcon <- textConnection(" 64 62 66 65 62
69 72 72 70" )
height = scan(tcon)
close(tcon)
...

If the deception doesn't please you, then use a file as in

 	example( scan )

to illustrate scan()

HTH,

Chuck

>
> Comments would be appreciated. (And thanks to Ross Darnell for a lot of help 
> on another list.)
>
> Cheers,  Murray Jorgensen
>
> -- 
> Dr Murray Jorgensen      http://www.stats.waikato.ac.nz/Staff/maj.html
> Department of Statistics, University of Waikato, Hamilton, New Zealand
> Email: maj at waikato.ac.nz                                Fax 7 838 4155
> Phone  +64 7 838 4773 wk    Home +64 7 825 0441   Mobile 021 0200 8350
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
>
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901



More information about the R-help mailing list