我试图首次使用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脚本中执行其他操作。有人可以提供一些指导。非常感谢您的宝贵时间。
答案 0 :(得分:4)
运行Rmarkdown文件会启动一个新的R会话。
在新会话中,您可以加载存储在data
包中的data.frames,但必须从Rmarkdown文档中加载其他数据集。
要让myData显示在您的Rmarkdown文档中,
save
的某处load
打开数据集所以,在你当前的R会话中:
save(myData, file="<path>/myData.Rdata")
并在您的Rmarkdown文件中:
```{r myDataSummary}
load("<path>/myData.Rdata")
summary(myData)
```
如果您的数据存储为文本文件,并且您不希望存储单独的.R文件,请直接在您的Rmarkdown文件中使用read.csv
或朋友。
```{r myDataSummary}
myData <- read.csv("<path>/myCSV.csv")
summary(myData)
```
答案 1 :(得分:0)
这是您尝试子集(=通过<script>
$(document).ready(function()
{
$("a").attr("target", "_self");
if(typeof(Storage) !== "undefined")
{
if (sessionStorage.pagecount)
{
if('<?=$random_value?>' == window.name)
{
sessionStorage.pagecount = Number(sessionStorage.pagecount) + 1;
}
else
{
var url = "url to remove random_value";
$.post(url, function (data, url)
{
sessionStorage.removeItem('pagecount');
sessionStorage.clear();
window.location = 'logout.php';
});
}
}
else
{
var url = "url to remove random_value";
$.post(url, function (data, url)
{
sessionStorage.removeItem('pagecount');
sessionStorage.clear();
window.location = 'logout.php';
});
}
}
else
{
var url = "url to remove random_value";
$.post(url, function (data, url)
{
sessionStorage.removeItem('pagecount');
sessionStorage.clear();
window.location = 'logout.php';
});
}
});
</script>
)函数时获得的错误。由于此错误是由代码中的x[i]
引起的,因此我们可能会推测summary(cars)
对象引用文档编织范围内的函数。
您可能忘记加载数据,或者您有一个在当前范围内定义的同名函数。
答案 2 :(得分:0)
正如@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)
```