Feature Request from Doug Martin and Tom Philips

Doug Martin martinrd3d at gmail.com
Tue Jan 19 21:32:06 UTC 2021


Paul,

Thanks for the question/suggestion.

It turns out that I used to use the chunks option cache = T, which I
understood to result in R code not being run
again unless something is changed in the code.  But its behavior seemed to
be somewhat random, so I gave it
up for the book and always use cache = F, which means the code does run
every time.  One thing I really like about
this (assuming no long-running Monte Carlos are involved) is that the
Figures in a Figure float update automatically
when I tweak the code to improve the figure.

However, the following with respect to "cache = T"  is for what it's
worth.  I have been twice bitten by using that
choice, in two different contexts, one while writing another paper.
Suddenly, I my compile would crash with
a message error that it was trying to load an R package that I no longer
use for the paper, but had used in the
not so recent past.  And it was because somewhere the cache contained a
load instruction for that package.
The solution was simple - just empty the cache.

Your suggested fix could work, but we are hoping for a more efficient fix
that works like our current
use of kable/kableExtra works.  Just change the code some and recompile and
you get the new table.

Doug



On Tue, Jan 19, 2021 at 10:27 AM Paul A. Rubin <parubin73 at gmail.com> wrote:

> On 1/19/21 12:03 PM, Doug Martin wrote:
>
> Scott (and all),
>
> I have attached the LYX segment from one of our book chapters, along with
> a page from the compiled pdf file that contains
> the resulting Table TS-2.1.
>
> This tiny example illustrates how we currently make most of our tables
> using the kableExtra package (kable is included in knitr),
> and if we had an R script to produce an LYX Table with the data frame (or
> data.table) as input, we would surely use it.
>
> FYI, in case you want to compile the LYX file, you just need to strip out
> the Springer svmono (book templates) stuff, etc., in the
> LaTeX preamble, install knitr and kableExtra from CRAN, and install the
> optimalPsiRho package with:
>
> devtools::install_github("kjellpk/optimalRhoPsi").
>
> Just before sending this I noticed the several other emails on the topic,
> and will take a look at them.
>
> Thanks,
> Doug
>
> On Mon, Jan 18, 2021 at 11:27 AM Scott Kostyshak <skostysh at lyx.org> wrote:
>
>> On Mon, Jan 18, 2021 at 11:03:49AM -0800, Doug Martin wrote:
>> > On Mon, Jan 18, 2021 at 10:41 AM Scott Kostyshak <skostysh at lyx.org>
>> wrote:
>> >
>> > > On Mon, Jan 18, 2021 at 07:25:42PM +0100, Jean-Marc Lasgouttes wrote:
>> > > > Le 14/01/2021 à 05:34, Doug Martin a écrit :
>> > > > > JMarc and all,
>> > > > >
>> > > > > Tom and I use knitr extensively for R code chunks, and we mostly
>> use
>> > > > > kable with kableExtra to make tables.
>> > > > > The input to kable are R data frames, or data.tables, which are
>> the
>> > > > > result of model fitting and related calculations.
>> > > > > But we like to put mathematical expressions in selected cells of
>> > > tables,
>> > > > > which is so easy with LYX tables, and we currently
>> > > > > have to make the data entry into LYX by hand from data tables and
>> > > > > data.tables in order to make use of that feature.
>> > > > > So it would be great if we could import R data tables and
>> data.tables
>> > > > > into LYX tables, rather than using the kable/kableExtra
>> > > > > solution for our tables  (maybe I didn't make that clear in my
>> earlier
>> > > > > email).  Then we would probably would drop use of
>> > > > > kable/kableExtra.
>> > > >
>> > > > So you want to import as .tex the result of R processing. This can
>> be
>> > > done
>> > > > via "Paste from LaTeX". What would be missing for your intended
>> usage?
>> > >
>> > > From what I understand, they would like to import a .Rds file without
>> > > having to manually convert it to LaTeX.
>> > >
>> >
>> > Scott,
>> >
>> > Definitely correct on the "without" part.  But we want to directly
>> import
>> > an R object
>> > of class data.frame or data.table into an LYX table.
>> >
>> > If we have to export such an object first, we would typically export it
>> to
>> > an .Rda object.
>> > But it would be far more convenient to not have to do that.
>>
>> Thanks for the clarification, Doug. It might help us to have a complete,
>> simple, example to play with. Can you give us the .lyx file and R
>> code/file? To make things perfectly clear to us, it might help to give
>> us a "before" version of the .lyx file and an "after" version of the
>> .lyx file. To create the "after" version you would have to do the steps
>> manually, but by seeing it we could make sure we understand what you
>> want to automate and what you expect the result to be.
>>
>> Thanks for your patience,
>>
>> Scott
>>
>
>
> --
> R. Douglas Martin
> Professor Emeritus in Applied Mathematics and Statistics
> Founder and Former Director of MS-CFRM Program
> depts.washington.edu/compfin/
> University of Washington
>
> Doug,
>
> If I am understanding your example correctly, you actually redo the R
> calculations each time you compile the LyX document. Is that a desired
> feature, or would you be just as happy running the R code once and parking
> the generated table in the LyX document? I ask because elsewhere in the
> thread I pointed out (in a reply to Riki) that one can use a custom R
> function (which you could set up to load by default whenever you crank up
> R) to convert a data frame or table to LaTeX and copy the LaTeX code to the
> clipboard. After that, all you have to do is paste it into your open LyX
> document using the correct LyX command, and it goes in as a table.
>
> Paul
>
> --
> Paul A. Rubin, Professor Emeritus
> The Eli Broad College of Business
> Michigan State University
> Email: rubin at msu.edu
> Home page: https://rubin.msu.domains/
>


-- 
R. Douglas Martin
Professor Emeritus in Applied Mathematics and Statistics
Founder and Former Director of MS-CFRM Program
depts.washington.edu/compfin/
University of Washington
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20210119/8a7994dc/attachment.html>


More information about the lyx-devel mailing list