gpt4 book ai didi

r - 如何使用 knitr 比较不同版本 R 的性能?

转载 作者:行者123 更新时间:2023-12-04 08:11:20 25 4
gpt4 key购买 nike

我想评估一些代码在不同版本的 R 中的性能。原则上这很容易:

  • 开始 R
  • 使用system.time()测量运行一段代码所需的时间
  • 终止 R
  • 冲洗并在不同版本中重复

  • 现在,我想使用 knitr创建一个报告来执行此操作。所以,在我看来,我需要一种机制来在每个 block 中启动一个新 session 。

    我该怎么做呢?

    部分 sample knitr markdown 代码作为演示。此代码使用 ggplot 绘制图形,但显然两个版本都返回相同的时间,因为我不知道如何为每个 block 启动新版本的 R。
    Comparison of R performance
    ========================================================

    # Do analysis in R version 2.14

    ```{r fig.width=6, fig.height=3}
    library(ggplot2)
    data(diamonds)

    system.time({
    p <- ggplot(diamonds, aes(carat, price/carat, colour=clarity)) + geom_point()
    print(p)
    })
    ```


    # Repeat same analysis in R 2.15

    ```{r fig.width=6, fig.height=3}
    library(ggplot2)
    data(diamonds)

    system.time({
    p <- ggplot(diamonds, aes(carat, price/carat, colour=clarity)) + geom_point()
    print(p)
    })
    ```

    最佳答案

    添加 Rscript引擎在 knitr was easy ,但我被 an R bug 阻止了.不管怎样,这个引擎从 version 1.1.5 开始可用并将作为 1.2 版在 CRAN 上。

    现在您可以指定 block 选项 engine='Rscript'engine.path='path/to/the/desired/Rscript' .

    对于大规模的性能比较,我认为 Ari B. Friedman 在上面的评论中建议是一个更好的方法。如果您有许多代码块进行比较,那么输入引擎路径将非常乏味。

    关于r - 如何使用 knitr 比较不同版本 R 的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15271406/

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