【发布时间】:2016-12-18 22:10:53
【问题描述】:
编辑:似乎 RStudio Preview 版本 0.99.1285 在笔记本和 rMarkdown 文档方面存在问题。标准 RStudio 的安装能够编写相同的代码。感谢大家的时间和精力。
我正在尝试创建一个简单的 R 笔记本以生成可读的分析报告。但是,每当我尝试运行我的笔记本时,我都会收到一个我无法诊断和解决的下标越界错误。
我已经更新了我所有的包并重新创建了类似的代码,但我得到了同样的错误。
R Markdown 代码(在全局环境中加载的库(dplyr)) 编辑:在第一个块中添加库(dplyr)
---
title: "R Notebook"
output: html_notebook
---
```{r}
library(dplyr)
```
```{r}
adataframe<-data_frame(a=rnorm(160),
b=rnorm(160,mean=5,sd=10),
c=sample(1:100,160,replace=TRUE),
z=sample(1:100,160,replace=TRUE),
letter=rep(c("w","x","y","z"),40))
```
test test min z is `r min(adataframe$z)` to max z at `r max(adataframe$z)`
```{r}
adataframe %>%
select(letter,z,b,a) %>%
group_by(letter) %>%
summarise_all(sum) %>%
mutate(division1=z/b,division2=b/a)
```
如果我在不运行块的情况下预览文档,文档会按预期显示。
但是,如果我运行所有代码块并尝试预览文档,则会收到以下错误:
Quitting from lines 7-8 (test.Rmd)
Error in csvs[[i + 1]] : subscript out of bounds
对应第一个代码块。
这是一个新项目中的测试笔记本,因此在全局环境中除了“adataframe”之外没有其他对象。
感谢阅读。
【问题讨论】:
-
rmarkdown 文档是在单独的 R 会话中编译的,而不是在您当前的 R 会话中,因此在使用
dplyr函数之前需要library(dplyr)。 -
正如@eipi10 所说,您需要添加
library(dplyr)。这样做后我无法重现您的错误。该脚本的处理没有错误,并且具有预期的输出。 -
当我添加库(dplyr)时,我在那个新块中得到下标错误:
-
运行您的代码时没有出错。
-
更多细节 - 如果我在运行文档按预期显示的所有块之前预览文档。但是,如果我运行所有块,我会得到 csvs[[i+1]]:subscript out of bounds 错误。这是 rmarkdown 文档的正常行为吗?