On 1/18/21 5:12 PM, Richard Kimberly Heck wrote:
On 1/18/21 2:49 PM, Paul A. Rubin wrote:
On 1/18/21 2:03 PM, Doug Martin wrote:


On Mon, Jan 18, 2021 at 10:41 AM Scott Kostyshak <skost...@lyx.org <mailto: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.

Doug


    Scott



--
R. Douglas Martin
Professor Emeritus in Applied Mathematics and Statistics
Founder and Former Director of MS-CFRM Program
depts.washington.edu/compfin/ <http://depts.washington.edu/compfin/>
University of Washington

Doug,

I'm not sure that what you want (direct import without first exporting) is possible. Keep in mind that the source data frames / tables live inside an R session, to which LyX probably does not have access. So I'm pretty sure you will need to manually export the R objects, either by saving to .Rda files (and then importing them into a LyX document using a converter) or by running an R function/script that converts them to LaTeX or LyX source (or something else LyX can ingest).

Presumably one could script the R session itself so that the needed object was exported? I.e., can one do that from the command line? That's the kind of thing that an external template would do.

Riki


Riki,

What do you have in mind by "external template"? Definitely you can export objects from within the R session, whether it is done by entering a line of code at the command line, or adding code to a script or notebook, or doing something interactive from within a Shiny web interface or an IDE. It seems they are currently doing that now (with kable()). What I don't think is possible is to have both LyX and an R session running, go to LyX, and run a command sequence or script that would say "go into my R session, grab the data frame named 'results', and import it as a LyX table". Specifically, I don't think the "go into my R session" part is doable.

With the right stuff installed, I think a viable option is to use the clipboard. I'll use the (in)famous iris data frame (which comes preinstalled in R) as an example. Assume that I have both R and LyX open, and the 'clipr' and 'xtable' R packages loaded. The command 'write_clip(capture.output(xtable(iris)))' formats the iris data frame as a LaTeX table and crams it into the system clipboard. In the LyX document, Edit > Paste Special > Paste from LaTeX imports it as a table (in a float inset, which can be dissolved if not wanted). The R command can be made into a function that can be loaded automatically when an R session starts, and I'm pretty sure I could turn it into an add-in with a shortcut in RStudio. Note that this would not require any changes to LyX.

Paul

-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to