如何在R
开始新的knitr
会话?我宁愿开始一个新的会话,而不是像rm(list=ls())
那样使用它,因为它不等同。
<<myname>>=
#some R code
@
<<another_chunk>>=
#start a new R session
#more R code
@
答案 0 :(得分:4)
好的,现在我有一些更实质的东西,受到an answer on the R-help list by Georg Ruß的启发。他建议让R回到启动时的三个方面,我已经为你写了这个六步手册。
首先,保存一个在启动时运行的软件包的字符串(在运行任何其他代码之前,应该先执行其他操作),
foo <- .packages()
其次,当您想要重置R时,如您所述,您运行
rm(list=ls())
删除所有对象。然后,第三,你跑,
bar <- .packages()
获取当前包的字符串。接下来,
foobar <- setdiff(bar, foo)
第五,你通过这种解决方法循环消除差异,
toRemove <- paste("package:", foobar, sep='')
#or paste0("package:", foobar) in R-2.15.0 or higher
for(i in seq_along(foobar)) {
detach(toRemove[i], character.only=TRUE)
}
第六,根据您的设置,您可以获得.Rprofile
source(".Rprofile")
这应该将R置于启动时的状态。我本可以忽视一些事情。
答案 1 :(得分:4)
我不建议在knitr
中启动新的R会话,而是建议您在终端(或命令窗口)中启动一个新的R会话,如下所示:
R -e "library(knitr); knit('your_input.Rnw')"
如果你在Windows下,你必须将R的bin目录放入你的环境变量PATH
(我已经厌倦了描述如何做到这一点,所以如果你在Windows世界,或查看LyX Sweave manual)。
但是,大多数编辑在调用Sweave或knitr
时会启动新的R会话,例如LyX和RStudio等您可以在http://yihui.name/knitr/demo/editors/中找到更多可能的编辑器。我真的不需要在终端中调用R -e ...
。