Knitr - встроенный фрагмент кода иностранного движка

Я написал механизм Knitr для обработки кода Maxima (как часть пакета), который работает для обычные куски просто отлично, например:

```{maxima}
1+1;
```

приводит к

(%i1) 1+1;
# (%o1) 2

Однако, когда я пытаюсь вывести вывод на печать, например,

`maxima 1+1;`

Он печатается буквально: maxima 1+1;

В Поваренной книге R Markdown прямо говорится

встроенный: обработка вывода из встроенных выражений R.

Так что я предполагаю, что это не должно работать (пока), но я хотел спросить здесь, есть ли способ сделать это/обходной путь, прежде чем подавать запрос на функцию в github.


person rcst    schedule 07.07.2021    source источник
comment
Все, что я смог найти, предполагает, что встроенные фрагменты всегда оцениваются в R. Вам нужно будет предоставить функцию-оболочку для вызова maxima из R, как это делается, например, для Python. См. stackoverflow.com/a/65344688/5028841. Но могу ошибаться...   -  person JBGruber    schedule 07.07.2021
comment
Ах, кажется, вы уже сделали! Так что это было бы разумным обходным путем: r rim::maxima.get(1+1;)`. Однако я вижу, что было бы неплохо узнать, единственный ли это способ и, возможно, также почему.   -  person JBGruber    schedule 07.07.2021
comment
Это действительно был бы один из способов. Однако rim::maxima.get() использует сеанс Maxima, отличный от движка Knitr. Таким образом, вы не сможете использовать предыдущие входные данные и результаты.   -  person rcst    schedule 07.07.2021