[R] Long lines with Sweave

Martin Maechler maechler at stat.math.ethz.ch
Thu Sep 15 10:48:25 CEST 2005


>>>>> "Fritz" == Friedrich Leisch <Friedrich.Leisch at tuwien.ac.at>
>>>>>     on Thu, 15 Sep 2005 10:36:43 +0200 writes:

>>>>> 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".


    Fritz> Hmm, it's not really an "Sweave peculiarity", but one of the R
    Fritz> parser. 

Indeed, of course -- it's R's  internal deparse(.) :

Here's a smaller example:

> (cc <- expression(x ^ {-3})[[1]])
> str(as.list(cc))
List of 3
 $ : symbol ^
 $ : symbol x
 $ : language {  -3 }
> 

Please apologize for any bad light that I might have shed on
Sweave.  I do love its concept!

Martin




More information about the R-help mailing list