2017-07-26 129 views
0

如何在Rmarkdown中忽略部分代碼塊?在Rmarkdown中隱藏部分R代碼

例如:

```{r echo T, eval = T} 
df <- readRDS("yourfile.RDS") 
df <- readRDS("secretfile.RDS") ### NEED TO OMIT THIS PART ONLY 
df 
``` 

我知道include = F,或echo = F選項但要麼省略df輸出或完全忽略的代碼。

或者,我可以這樣做:

```{r echo T, eval = F} 
df <- readRDS("yourfile.RDS") 
``` 
```{r echo = F, eval = T} 
df <- readRDS("secretfile.RDS") ### NEED TO OMIT THIS PART ONLY 
``` 
```{r eval = T, echo = T} 
df 
``` 

但是,這是做一個笨重的方式,它砍下代碼塊。輸出應該如下所示:

df <- readRDS("yourfile.RDS") 
df 

隨着df的輸出如下。

謝謝!

編輯:"yourfile.RDS"是在我的文檔中用於演示目的的佔位符。因此,不能評估代碼行df <- readRDS("yourfile.RDS")

+0

如果您沒有使用「yourfile.RDS」評估代碼,爲什麼不把祕密,評估代碼放在頂部?這樣你就不會搞亂你的格式。 –

+0

嗨,我需要省略'readRDS(「secretfile.RDS」)'。它有一些參數不應出於隱私的原因顯示在文檔上。這個想法是展示如何用數據的同名'df'完成這個過程。這就是爲什麼我甚至無法讀取文件(''''{r include = F} df < - readRDS(「secretfile.RDS」)''''。 – JdM

+1

是的,我說的是你可以隱藏代碼,但將其放在未評估的代碼塊上面,然後在未評估的代碼塊(即顯示)後,您可以創建另一個已評估但隱藏的代碼塊,返回您的df。 –

回答

1

您可以隱藏代碼,但將其放在未評估的代碼塊上方。然後,在未評估的代碼塊(即顯示)後,您可以創建另一個已評估但隱藏的代碼塊,返回您的df。

例如:這裏

```{r echo = F, eval = T} 
df <- readRDS("secretfile.RDS") ### NEED TO OMIT THIS PART ONLY 
``` 
```{r echo = T, eval = F} 
df <- readRDS("yourfile.RDS") 
df 
``` 
```{r echo = F, eval = T} 
df 
``` 

OP。謝謝@be_green!只是略有改善上面的代碼:

```{r echo = T, eval = F} 
df <- readRDS("yourfile.RDS") 
df 
``` 
```{r echo = F, eval = T} 
df <- readRDS("secretfile.RDS") ### NEED TO OMIT THIS PART ONLY 
df 
``` 
4

echo參數可以採用數字,而不是僅僅TRUEFALSE。它們被視爲塊中表達式向量的索引。

因此要隱藏第二行代碼,請使用echo = -2

eval參數也接受索引,但如果將它們設置爲不被評估,它將顯示帶有註釋標記的東西,因此您不能(輕鬆地?)顯示第1行,而是執行第2行。您可以執行這個:

```{r eval=-1, echo=-2} 
a <- 1 
b <- 2 
c <- 3 
``` 

並且第1行不會被執行。該塊將顯示爲

## a <- 1 
c <- 3 
+0

謝謝@ user2554330。我不知道「echo」和「eval」參數的索引。然而,我不能應用你的解決方案,因爲''yourfile.RDS''不存在這會引發錯誤,但我不清楚我的問題,所以我也會檢查你的評論。乾杯 – JdM

+0

在這種情況下,使用註釋標記顯示它可能是合適的。 – user2554330

+0

謝謝。乾杯。 – JdM