【问题标题】:Accessing data generated by an R script with r markdown and knitr使用 r markdown 和 knitr 访问由 R 脚本生成的数据
【发布时间】:2015-07-09 17:19:36
【问题描述】:

我是 R markdown 和 knitr 的新手,还没有找到这个问题的答案:

我有 R 脚本,我在其中编写了函数并将数据分配到位置 1 (.GlobalEnv)。如何访问我的数据并在 R markdown 中运行我的函数并使用 knitr 生成 .html 文件?

这是一个简单的例子。在我生成的脚本文件中:

some.x.data<-1:10
some.y.data<-1:10
toy.fn<-function(){
  tot<-some.x.data + some.y.data
  tot
}

toy.fn() 在脚本文件中起作用。

我的 R markdown 文件包含:

---
title: "trivial test"
author: "me"
date: "July 9, 2015"
output: html_document
---


```{r}
plot(some.x.data, some.y.data)
toy.fn()
```

当我单击 knit HTML 时,我收到以下错误:

绘图错误(some.x.data,some.y.data):找不到对象“some.x.data” 调用:... withCallingHandlers -> withVisible -> eval -> eval -> plot

谢谢

【问题讨论】:

  • 我遇到了同样的问题。你搞清楚了吗?

标签: r knitr


【解决方案1】:

RStudio 打开一个新的 R 会话到 knit() 你的 Rmd 文件,所以 .GlobalEnv 中的对象将不能用于该会话(它们是两个单独的会话),所以当你在 knitring @ 987654325@ 没有办法知道some.x.datasome.y.datatoy.fn 是什么。

或者您需要在Rmd 文件中重新创建它们。如果您不想要任何输出,请执行以下操作:

```{r, echo = FALSE, message = FALSE}
some.x.data<-1:10
some.y.data<-1:10
toy.fn<-function(){
  tot<-some.x.data + some.y.data
  tot
}
```

完整的Rmd:

---
title: "trivial test"
author: "me"
date: "July 9, 2015"
output: html_document
---
```{r, echo = FALSE, message = FALSE}
some.x.data<-1:10
some.y.data<-1:10
toy.fn<-function(){
  tot<-some.x.data + some.y.data
  tot
}
```
```{r}
plot(some.x.data, some.y.data)
toy.fn()
```

或者

knit自己手动:library(knitr); knit('your_file.Rmd')

【讨论】:

  • @Roman 我也有这个问题。如何将代码编织到 RMD 文件中?谢谢!
猜你喜欢
  • 2022-12-10
  • 2016-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-14
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
相关资源
最近更新 更多