gpt4 book ai didi

r - 在 Rmarkdown 中执行 Perl 6 代码

转载 作者:行者123 更新时间:2023-12-01 17:43:57 27 4
gpt4 key购买 nike

我想写一些关于 Perl 6 的教程。对此我相信 Rmarkdown 会有很大的帮助。

所以我尝试在 Rmarkdown 文档中执行 Perl 6 代码。

我的 Perl 6 可执行文件位于 C:\rakudo\bin 中。因此,我的 .Rmd 文件包含完成此操作的示例代码,如下所示:

---
title: "Example"
output: html_document
---

```{r, engine='perl6', engine.path='C:\\rakudo\\bin'}
my $s= "knitr is really good";
say $s;
```

然而,在 Rstudio 中编织上述文档显示以下内容,但没有 Perl 6 输出。 enter image description here

我缺少什么帮助吗?

最佳答案

不是我的专业领域,但有 help of a blog我设法让它产生输出。

首先,查看 RStudio 的 R Markdown 选项卡。它会向您显示一条警告,解释为什么您的版本没有呈现任何内容:

Warning message:
In get_engine(options$engine) :
Unknown language engine 'perl6' (must be registered via knit_engines$set()).

考虑到这一点,我们可以查找如何注册引擎并执行此操作:

```{r setup, echo=FALSE}
library(knitr)
eng_perl6 <- function(options) {
# create a temporary file
f <- basename(tempfile("perl6", '.', paste('.', "perl6", sep = '')))
on.exit(unlink(f)) # cleanup temp file on function exit
writeLines(options$code, f)
out <- ''

# if eval != FALSE compile/run the code, preserving output
if (options$eval) {
out <- system(sprintf('perl6 %s', paste(f, options$engine.opts)), intern=TRUE)
}

# spit back stuff to the user
engine_output(options, options$code, out)
}

knitr::knit_engines$set(perl6=eng_perl6)
```

```{r, engine='perl6'}
my $s= "knitr is really good";
say $s;
```

引擎注册了一个函数,该函数首先将要运行的代码保存到临时文件中,然后执行 Rakudo 编译器,要求它编译该文件。

收集所需的输出后,该函数将删除临时文件并为我们提供用于渲染的输出。

关于r - 在 Rmarkdown 中执行 Perl 6 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45857934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com