gpt4 book ai didi

r - 在 Sweave/R 中计算表达式之前,是否可以包含 Sexpr?

转载 作者:行者123 更新时间:2023-12-04 11:24:13 26 4
gpt4 key购买 nike

我正在写一个 Sweave 文档,我想包括一个小部分,详细说明 R 和包版本、平台以及评估文档所需的时间,但是,我想把它放在文档的中间!

我正在使用\Sexpr{elapsed} 来执行此操作(这不起作用),但是我想如果我将代码打印放在最后评估的块中,然后我可以在中途包含块,这也失败。

我的文档看起来像这样

% 
\documentclass[a4paper]{article}
\usepackage[OT1]{fontenc}
\usepackage{longtable}
\usepackage{geometry}
\usepackage{Sweave}
\geometry{left=1.25in, right=1.25in, top=1in, bottom=1in}
\begin{document}

<<label=start, echo=FALSE, include=FALSE>>=
startt<-proc.time()[3]
@
Text and Sweave Code in here
%
This document was created on \today, with \Sexpr{print(version$version.string)} running
on a \Sexpr{print(version$platform)} platform. It took approx sec to process.
<<>>=
<<elapsed>>
@
More text and Sweave code in here
<<label=bye, include=FALSE, echo=FALSE>>=
odbcCloseAll()
endt<-proc.time()[3]
elapsedtime<-as.numeric(endt-startt)
@
<<label=elapsed, include=FALSE, echo=FALSE>>=
print(elapsedtime)
@
\end{document}

但这似乎不起作用(令人惊讶!)

有谁知道我怎么能做到这一点?

谢谢

保罗。

最佳答案

这对我来说很好用:

\documentclass{article}
\usepackage{Sweave}
\begin{document}

<<label=start, echo=FALSE, include=FALSE>>=
startt<-proc.time()[3]
@

Text and Sweave Code in here

This document was created on \today, with
\Sexpr{print(version$version.string)}.

<<results=hide,echo=FALSE>>=
Sys.sleep(2) # instead of real work
@

More text and Sweave code in here

<<label=bye, include=FALSE, echo=FALSE>>=
endt<-proc.time()[3]
elapsedtime<-as.numeric(endt-startt)
@

It took approx \Sexpr{elapsedtime} seconds to process.

\end{document}

我不得不删除 \Sexp{} 中的版本字符串因为我得到了一个下划线 via x86_64然后打乱了 LaTeX。否则就好了,你现在得到的耗时刚好超过 sleep 量。

您可以使用 R 将耗时缓存在临时文件中以备下次运行,或者将其作为某种变量传递给 LaTeX - 但您将无法使用“前向引用”,因为 R 块在转动。

关于r - 在 Sweave/R 中计算表达式之前,是否可以包含 Sexpr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2684361/

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