あなたはknitr
はRを処理するために取得することはできませんニットとき
---
params:
B: 'test'
---
```{r simple, results='asis', echo=FALSE}
write(params[['B']], file = "")
```
```{r recursive-evaluation-questionmark, results='asis', echo=FALSE}
write(
"How to get \"params[['B']]\" evaluated here? This \"`r params[['B']]`\" is
expected to be \"test\" ...",
file = "")
```
は現在、これは次のように生成純粋なRコードを使用して問題を解決することができます。 write()
の代わりにcat()
を使用することをおすすめします。あなた例えば、
より複雑なマクロのような置換を
write(
paste0("How to get \"params[['B']]\" evaluated here? This \"", params[['B']], "\" is
expected to be \"test\" ..."),
file = "")
または
cat("How to get \"params[['B']]\" evaluated here? This \"", params[['B']], "\" is
expected to be \"test\" ...", sep = "")
シンプルな、あなたは、例えば、sub()
またはgsub()
機能を使用する場合があります
msg <- "How to get \"params[['B']]\" evaluated here? This \"%param%\" is
expected to be \"test\" ..."
cat(sub("%param%", params[['B']], msg))
アドバイスありがとうございます。私は実際に 'brew'を使って同様の解決策を用意していましたが、それはすごく面倒です。 'params [['A']]'の条件付きであると仮定された場合... – balin
これはすべてRコードで行われているので、条件文を使うことができます。 'if'をインラインで使用できることを覚えておいてください。 (params [["A"]])params [['B']] else "something else"、msg)) 'cat(sub("%param% – user2554330