Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:Knitr给出了SQL块的错误_Sql_R_Eval_Knitr - Fatal编程技术网

R:Knitr给出了SQL块的错误

R:Knitr给出了SQL块的错误,sql,r,eval,knitr,Sql,R,Eval,Knitr,我想整理我的R-markdown的输出,其中包括几个SQL块。但是,如果我开始编织,会出现以下错误: Line 65 Error in eval(expr, envir, enclos) : object 'pp_dataset' not found Calls: <Anonymous> ... process_group.block -> call_block -> eval_lang -> eval Execution halted 我尝试了几种编织选

我想整理我的R-markdown的输出,其中包括几个SQL块。但是,如果我开始编织,会出现以下错误:

Line 65     Error in eval(expr, envir, enclos) : object 'pp_dataset' not found Calls: <Anonymous> ... process_group.block -> call_block -> eval_lang -> eval Execution halted
我尝试了几种编织选项,如error=TRUE/FALSE、echo=TRUE/FALSE和include=TRUE/FALSE,但都不起作用。
有人知道怎么回事吗?

呈现文档时,Rmarkdown无法访问您的全局环境。因此,您应该确保要使用的所有变量都在Rmarkdown文档中定义,例如在初始块中:

```{r setup, include=FALSE, warning=FALSE, message=FALSE}
(...)
```
或者你应该打字

render("yourfile.Rmd")
而不是按编织按钮。在这种情况下,文档确实可以访问全局环境变量。在本例中,我猜“con”连接位于全局环境中,在渲染时找不到。希望这有帮助


编辑:我能够用您的示例代码重现错误:

在没有初始化SQL语句的输出变量之前,我无法运行您的代码。在您的顶部目录中(例如,在
setwd(mydirectory)
行下方),尝试:


pp_dataset看起来您需要在rchunk选项中引用数据集名称:

```{sql, connection=con, output.var="pp_dataset", error=TRUE, echo=FALSE, 
include=TRUE}
SELECT
(...)
order by 1,2
```
资料来源:
我也回答了这个问题。我不确定协议,因为答案是相同的。

如果我在控制台中键入render(“myfile.Rmd”),我会得到以下错误:工具中的错误::文件路径作为绝对值(输入):文件“20170721\u visualization.Rmd”不存在另外:警告消息:1:在normalizePath(路径.扩展(路径)中路径[1]=“20170721 visualization.Rmd”:系统找不到文件2:在normalizePath(path.expand(path),winslash,mustWork):路径[1]=“20170721_visualization.Rmd”:系统找不到文件Nope,我找到了一个。现在更改了wd。因此它开始渲染,现在我得到以下错误(在RStudio中运行时仍然有效):从第65-398行(20170724_visualization.Rmd)退出分配错误(varname,data,envir=knit_global()):无效的第一个参数能否将您的Rmd文件简化为可复制的示例?请参阅,否则很难提供帮助。由于可复制的示例太长,我将在下面将其作为“答案”发布。但是,它不可复制,因为我在示例中与Teradata建立了连接,并使用此连接获取SQL数据块中的数据(这个SQL区块似乎是个问题)。希望你能帮上忙!我试着在初始区块中预定义我的变量作为df。感谢这一点,让我惊讶的是,在R studio中手动运行区块时,我不需要引用它,但为了编写完整的文档,我确实需要引用它
```{sql, connection=con, output.var="pp_dataset", error=TRUE, echo=FALSE, 
include=TRUE}
SELECT
(...)
order by 1,2
```