[英]R Markdown Error - closure is not subsettable withCallingHandlers -> withVisible-> eval ->hist
[英]How to solve R Markdown (Knit) “'closure' is not subsettable”?
我正在嘗試第一次使用RMarkdown(Knit)生成pdf。 默認文件(“文件”>“新文件”>“ R Markdown”)運行良好,編譯后會顯示生成的pdf。 例如,以下代碼運行,
```{r cars}
summary(cars)
```
但是,如果我只是用“ myData”換車,它不會編譯並顯示,
Error in object[[i]] : object of type 'closure' is not subsettable
Calls: <Anonymous> ... withVisible -> eval -> eval -> summary -> summary.default
Execution halted
我在全局環境中加載了“ myData”,並且可以在原始R腳本中執行其他操作。 有人可以提供一些指南嗎? 非常感謝您的寶貴時間。
運行Rmarkdown文件將啟動一個新的R會話。
在新會話中,您可以加載存儲在data
包中的data.frames,但是必須從Rmarkdown文檔中加載其他數據集。
為了使myData顯示在Rmarkdown文檔中,
save
到當前R會話中的某個位置 load
打開數據集 因此,在您當前的R會話中:
save(myData, file="<path>/myData.Rdata")
並在您的Rmarkdown文件中:
```{r myDataSummary}
load("<path>/myData.Rdata")
summary(myData)
```
如果您的數據存儲為文本文件,並且您不想存儲單獨的.R文件,請直接在Rmarkdown文件中使用read.csv
或friend。
```{r myDataSummary}
myData <- read.csv("<path>/myCSV.csv")
summary(myData)
```
這是您嘗試對函數進行子集化(通過x[i]
)時遇到的錯誤。 由於此錯誤是由您的代碼中的summary(cars)
引起的,因此我們可以推測, cars
對象是在文檔編制范圍內引用的函數。
您可能忘記了加載數據,或者您有一個在當前作用域中定義的具有相同名稱的函數。
正如@Imo解釋的那樣,基本問題是新會話。 因此,答案將是在rMarkdown中添加腳本。 但是,這只會造成更多的故障。 這是我很少處理的方式
```{r global_options, include=FALSE}
source(file = "C:\\Path\\to\\my\\file.R")
knitr::opts_chunk$set(fig.width=12, fig.height=8, fig.path='Figs/',
echo=FALSE, warning=FALSE, message=FALSE)
```
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.