在 R Markdown 中有条件地显示带有变量的数学公式
Conditionally display math formulas with variables in R Markdown
我在使用 R markdown 中的变量渲染公式时遇到问题。
这是我使用的变量(简单示例):
```{r, include=FALSE}
series <- c(1, 2, 3, 4)
count <- leng(series)
sum <- sum(series)
sum2 <- sum(series^2)
sq_formula <- TRUE
我的问题是使用 knitr 在 Rmd(输出 = Word)数学表达式中打印,例如:
$$S = \frac{\sum{S}}{n} = \frac{`r sum`}{`r count`} = `r mean(series)`$$
如果sq_formula为假,否则应该是:
$$S = \frac{\sum{S^2}}{n} = \frac{`r sum2`}{`r count`} = `r sum2 / count`$$
有一种方法可以在R块中编写公式并按条件打印,例如:
```{r, include=FALSE}
formula1 <- '$$ \overline{S} = \frac{\sum{S}}{n} = \frac{\sum{`r sum`}{`r count`}}$$'
formula2 <- '$$ \overline{S} = \frac{\sum{S^2}}{n} = \frac {\sum{`r sum2`}}{`r count`}$$'
`r if (sq_formula <- TRUE) {formula1} else {formula2}`
但我无法在块中插入 r sum
、r count
等变量。
我也尝试用 sprintf
函数来处理这个问题,但还没有找到一种方法来用数学符号在字符串中插入变量。因此,我将不胜感激。
sprintf
有什么问题?你做不到吗
formula1 <- sprintf(
'$$ \overline{S} = \frac{\sum{S}}{n} = \frac{\sum{%s}{%s}}$$',
sum, count
)
我在使用 R markdown 中的变量渲染公式时遇到问题。 这是我使用的变量(简单示例):
```{r, include=FALSE}
series <- c(1, 2, 3, 4)
count <- leng(series)
sum <- sum(series)
sum2 <- sum(series^2)
sq_formula <- TRUE
我的问题是使用 knitr 在 Rmd(输出 = Word)数学表达式中打印,例如:
$$S = \frac{\sum{S}}{n} = \frac{`r sum`}{`r count`} = `r mean(series)`$$
如果sq_formula为假,否则应该是:
$$S = \frac{\sum{S^2}}{n} = \frac{`r sum2`}{`r count`} = `r sum2 / count`$$
有一种方法可以在R块中编写公式并按条件打印,例如:
```{r, include=FALSE}
formula1 <- '$$ \overline{S} = \frac{\sum{S}}{n} = \frac{\sum{`r sum`}{`r count`}}$$'
formula2 <- '$$ \overline{S} = \frac{\sum{S^2}}{n} = \frac {\sum{`r sum2`}}{`r count`}$$'
`r if (sq_formula <- TRUE) {formula1} else {formula2}`
但我无法在块中插入 r sum
、r count
等变量。
我也尝试用 sprintf
函数来处理这个问题,但还没有找到一种方法来用数学符号在字符串中插入变量。因此,我将不胜感激。
sprintf
有什么问题?你做不到吗
formula1 <- sprintf(
'$$ \overline{S} = \frac{\sum{S}}{n} = \frac{\sum{%s}{%s}}$$',
sum, count
)