我要評估的不同版本R的一些代碼的性能這在原則上很容易:如何使用knitr來比較不同版本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)
})
```
難道你不可能只是有一個'bash'腳本或者不能完成R會話的所有開始/停止,每個會話都會將其結果寫入文件,然後使用'knitr'來讀取所有日誌文件並總結結果?不夠優雅,但可能更準確,更容易。 – 2013-03-07 12:40:20
@ AriB.Friedman是的,可能。但這聽起來像工作! – Andrie 2013-03-07 12:47:50
估計你需要使用'system()'來運行另一個R進程... – Spacedman 2013-03-07 15:17:58