[R] Sweave and scan()

Murray Jorgensen maj at waikato.ac.nz
Thu Jul 29 01:32:27 CEST 2010


Hi Duncan,

I at first thought that your suggestion was how the .tex file should be 
and that this would involve tediously editing the latex source each time 
I updated the .Rnw. But as you probably intended I find that I can slip 
the Schunks and Sinputs into the .Rnw and all still works.

Thank for that. BTW my previous "Thanks for all your help" was meant to 
be "Thanks to all for your help".

Cheers,  Murray

Duncan Murdoch wrote:
> On 28/07/2010 6:33 PM, Murray Jorgensen wrote:
>> Omigod! The archival links shows that this was the same problem that 
>> caused me to give up on Sweave about 6 years ago. I guess I never 
>> properly assimilated Brian Ripley's comments at the time.
>>
>> I finished up doing this:
>>
>> \begin{verbatim}
>>  > height = scan()
>> 1:  64 62 66 65
>> 5:  62 69 72 72 70
>> 10:
>> Read 9 items
>>  > part = scan(what = character(0))
>> 1: "Soprano" "Soprano" "Soprano"
>> 4: "Alto"    "Alto"    "Tenor"
>> 7: "Tenor"   "Bass"    "Bass"
>> 10:
>> Read 9 items
>> \end{verbatim}
>> <<echo=FALSE,results=hide>>=
>> height <- c(64, 62, 66, 65, 62, 69, 72, 72, 70)
>> part = c("Soprano","Soprano", "Soprano",
>>   "Alto",    "Alto",    "Tenor",
>>   "Tenor",   "Bass",    "Bass")
>> @
>>
>> which does give the output I want (though in a different style) and 
>> leaves the R session in the state that I want.
> 
> If you the look to be the same as with other chunks, you should use the 
> Sinput, Soutput and possibly Schunk environments.  (Schunk normally does 
> nothing, but you might have customized it.)  That is, write your stuff as
> 
> \begin{Schunk}
> \begin{Sinput}
>  > height = scan()
> 1:  64 62 66 65
> 5:  62 69 72 72 70
> 10:
> \end{Sinput}
> \begin{Soutput}
> Read 9 items
> \end{Soutput}
> \begin{Sinput}
>  > part = scan(what = character(0))
> 1: "Soprano" "Soprano" "Soprano"
> 4: "Alto"    "Alto"    "Tenor"
> 7: "Tenor"   "Bass"    "Bass"
> 10:
> \end{Sinput}
> \begin{Soutput}
> Read 9 items
> \end{Soutput}
> \end{Schunk}
> 
> (I suppose it's debatable whether lines to scan() should be typeset as 
> input or output.)
> 
> Duncan Murdoch
> 
> 
>>
>> Thanks for all your help.
>>
>> Murray
>>
>>
>>
>> David Winsemius wrote:
>>> On Jul 27, 2010, at 7:01 AM, Murray Jorgensen wrote:
>>>
>>>> Both suggestions generate similar errors to those of the original 
>>>> code. I would also be worried if the results would not puzzle my 
>>>> students.
>>> You are teaching them about R or about Sweave? You are setting up 
>>> code that is designed to run at an open console session, but 
>>> submitting it to a batch process.
>>>
>>> http://finzi.psych.upenn.edu/R/Rhelp02/archive/31347.html
>>>
>>> After reading that I am wondering if you could set up a 
>>> textConnection first and then  scan from that?
>>>
>>>  > con <- textConnection("64 62 66 65 62\n69 72 72 70")
>>>  > scan(file=con)
>>> Read 9 items
>>> [1] 64 62 66 65 62 69 72 72 70
>>>
>>
>>
> 


-- 
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    majorgensen at ihug.co.nz      Fax 7 838 4155
Phone  +64 7 838 4773 wk    Home +64 7 825 0441   Mobile 021 0200 8350



More information about the R-help mailing list