我使用 forloop 包在 LaTeX 中编写了一个 for 循环,每次迭代时,我都想使用上面 R 块中定义的向量的不同子集。但是,循环的每次迭代都会将计数器重置为循环内代码之前的起始值。以下是示例:
```{r}
n <- 3
count <- 1
vec <- c("A","B","C")
```
\newcounter{i}
\forloop{i}{0}{\value{i} < `n`}{
```{r}
print(vec[count])
```
```{r}
count <- count + 1
```
}
我希望输出的是 ABC,但是计数器却被重置,而我得到的却是 AA A。
有没有办法将 R 变量定义为全局变量并防止它在下一次迭代时重置,或者有没有办法在 R 块中使用 LaTeK 计数器?
谢谢你!
答案1
R 的代码对 LaTeX 或 markdown 上下文不敏感。
在 LaTeX 导出和编译之前,所有 R 块都会先进行评估,然后由 R 输出进行更改,因此 LaTeX 或 markdown 语法可以不是不会以任何方式影响 R 代码。只有它可以改变结果,例如它可以改变以草书显示的子集,但不能改变子集的范围。因此,循环必须在 R 端。
另一方面,你根本不需要循环来显示某个向量的子集。例如:
---
output:
pdf_document: default
---
```{r, comment="",echo=FALSE}
vec <- c("A","B","C","D","E")
```
My interest is in the *`r vec[2:4]` part*.
这应该产生:
我的兴趣是B、C、D部分。