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 <parubi...@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 <skost...@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 <skost...@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: ru...@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
-- lyx-devel mailing list lyx-devel@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-devel