我想评估一些代码在不同版本的 R 中的性能。原则上这很容易:
- 启动 R
- 用于
system.time()
衡量运行一段代码所需的时间 - 终止 R
- 冲洗并以不同的版本重复
现在,我想用knitr
创建一个报告来做到这一点。所以,在我看来,我需要一种机制来在每个块中启动一个新会话。
我该怎么做呢?
一些示例knitr
降价代码用作演示。此代码使用 绘制图形ggplot
,但显然两个版本都返回相同的时间,因为我不知道如何为每个块启动新版本的 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)
})
```