[R] Long lines with Sweave
    Friedrich.Leisch@tuwien.ac.at 
    Friedrich.Leisch at tuwien.ac.at
       
    Thu Sep 15 10:36:43 CEST 2005
    
    
  
>>>>> On Thu, 15 Sep 2005 09:35:25 +0200,
>>>>> Martin Maechler (MM) wrote:
>>>>> "Jan" == Jan T Kim <jtk at cmp.uea.ac.uk>
>>>>>     on Wed, 14 Sep 2005 14:46:20 +0100 writes:
  Jan> On Wed, Sep 14, 2005 at 02:49:56PM +0200, Henrik Andersson wrote:
  >>> Jan T. Kim wrote:
  >>> > On Wed, Sep 14, 2005 at 10:14:59AM +0200, Henrik Andersson wrote:
  >>> > 
  >>> >>I have used Sweave a lot the latest year, but never really used any long 
  >>> >>function calls.
  >>> >>
  >>> >>
  >>> >>If I have code which look like this
  >>> >>
  >>> >>-------------------------------------------------------------
  >>> >>gof <- benthic.flux(ID="Gulf of Finland",
  >>> >>                     meas.conc=conc,
  >>> >>                     bw.conc=bw.conc,
  >>> >>                     time=times,
  >>> >>                     substance=expression(DIC~(mmol~m^{-3}))
  >>> >>                     )
  >>> >>-------------------------------------------------------------
  >>> >>
  >>> >>I get the output by Sweave in my pdf file, like this:
  >>> >>
  >>> >>---------------------------------------------------------------
  >>> >> > gof <- benthic.flux(ID = "Gulf of Finland", meas.conc = conc,
  >>> >>+ bw.conc = bw.conc, time = times, substance = expression(DIC ~
  >>> >>+ (mmol ~ m^{
  >>> >>+ -3
  >>> >>+ })))
  >>> >>----------------------------------------------------------------
  >>> >>
  >>> >>I can understand that it will not look exactly as entered but why is the 
  >>> >>'-3' on a line of it's own?
  >>> >>
  >>> >>Can anyone suggest a idea to how I can make this more readable.
  >>> > 
  >>> > 
  >>> > It seems you've been thinking LaTeX rather than R ;-)  :
  >>> > The exponent "-3" in the expression should be enclosed by parentheses
  >>> > rather than by curly braces.
  >>> > 
  >>> > The code formatting done by the print method inserts the newline after
  >>> > "{" and before "}".
  >>> > 
  >>> > Best regards, Jan
  >>> 
  >>> If you look at demo(plotmath), I get the impression that m^(-3) does not 
  >>> give me the desired behavior.
  >>> 
  >>> I want to have -3 in superscript without visible parentheses.
  >>> 
  >>> Tricky!
  Jan> Ok, I see.
  Jan> It seems to me that you could omit the curly braces in the example, I
  Jan> don't see any differences between the title in the plots produced by
  Jan> plot(1:10, main = expression(DIC~(mmol~m^-3)))
  Jan> and
  Jan> plot(1:10, main = expression(DIC~(mmol~m^{-3})))
  Jan> For more complex exponents, you could try plain() to prevent them from
  Jan> being wrongly grouped by operator precedence, as in
  Jan> plot(1:10, main = expression(DIC~(mmol~m^plain(-3 + t))))
  > neat idea, but
  Jan> Not exactly ideal for readability, however...
  > indeed.  And really only a workaround:
  > You shouldn't have to uglify your R code in order to work around
  > Sweave "pecularities".
Hmm, it's not really an "Sweave peculiarity", but one of the R
parser. After saving Henrik's code in file test.R I get
R> x  = parse("test.R")
R> x
expression(gof <- benthic.flux(ID = "Gulf of Finland", meas.conc = conc, 
    bw.conc = bw.conc, time = times, substance = expression(DIC ~ 
        (mmol ~ m^{
            -3
        }))))
R> deparse(x)
[1] "expression(gof <- benthic.flux(ID = \"Gulf of Finland\", meas.conc = conc, "
[2] "    bw.conc = bw.conc, time = times, substance = expression(DIC ~ "         
[3] "        (mmol ~ m^{"                                                        
[4] "            -3"                                                             
[5] "        }))))"
and the latter is used by Sweave. The code chunks need to be parsed,
because otherwise there is no way how to know where to insert
output. A source(..., echo=TRUE) will suffer from the same problem.
Best,
Fritz
-- 
-------------------------------------------------------------------
                        Friedrich Leisch 
Institut für Statistik                     Tel: (+43 1) 58801 10715
Technische Universität Wien                Fax: (+43 1) 58801 10798
Wiedner Hauptstraße 8-10/1071
A-1040 Wien, Austria             http://www.ci.tuwien.ac.at/~leisch
    
    
More information about the R-help
mailing list