2016-06-09 79 views
0

我試圖創建一個文件詞從控制檯上完美工作的程序開始。與融化()函數RMarkdown錯誤

的問題是,當它到達一個使用melt()它產生一個錯誤的函數

找不到熔體功能

和停止編譯的代碼。

安裝了包reshape,我試着重新運行代碼而不使用降價,並且不會產生任何錯誤。 有可能是RMarkdown不支持melt()功能?

+0

不,它不是在所有可能的R降價不使用有效的功能支持。 – hrbrmstr

+0

您是否使用'library()'加載了'R'markdown中的'reshape'包? –

回答

1

安裝軟件包是不夠的 - 您需要加載它。它有可能在您的控制檯中工作,因爲它仍然是從之前加載的,或者因爲您已將它安裝在當前會話中。

要使用的包,你需要添加以下到您的(R降價)的代碼,使用它的函數之前:

library(reshape) 

或者,你可以前綴其所有的功能與reshape::。因此,不要致電melt,您可以致電reshape::melt。這種做法不太常見,但它沒有任何問題。

+0

我已經加載了包,抱歉沒有說出來。如果我運行正常的代碼一切正常,只是當我使用降價時出現錯誤 – juse

+0

@juse:正如Konrad所說,你需要在R markdown file_中調用庫(重新調用)'_,* not *主要的RStudio(即全球)環境。 – hrbrmstr

0

在R markdown內加載包裝。在R markdown之外加載軟件包是不夠的。包裝的加載應該在R markdown中的R塊內。

```{r} 
    library(reshape) 
    melt(iris) 
    ``` 
0

我有完全相同的問題,並最終解決它。這是由在我的Markdown文檔中加載庫的代碼塊中設置eval = FALSE引起的,其中包括reshape2。當我刪除的選項,它終於摸索:

{r setoptions, ***eval=FALSE***} library(ggplot2) library(plyr) library(dplyr) library(reshape2) library(knitr)