3

我使用了不起的 rCharts 和 knitr 构建了一个网页。我的页面将人力车时间序列图表与滑块和数据表结合在一起。当我添加数据表时,所有滑块都从我的人力车图表中消失了。我尝试修改 config.yml,以免重复调用相同的资源,但这并没有解决问题。任何想法都会有很大帮助。下面是一个可重现的 r-markdown 文件,可以使用 knitr 编织成一个 html 页面。

```{r echo = F, message = T, cache = F}
require(rCharts)
opts_knit$set(self.contained=T)
knitr::opts_chunk$set(results = 'asis', tidy = F, message = T, echo=F, fig.width=700)
```

### Chart
```{r chart}
# add dummy date column to iris to make a time series chart
x <- cbind(iris, date=seq.Date(as.Date("2010-01-01"), length.out=nrow(iris), by=1))
x$date <- as.double(as.POSIXct(x$date,origin="1970-01-01"))
r2 <- Rickshaw$new()
r2$layer(
  Sepal.Length ~ date,
  data = x,
  type = "line",
  min = "auto"
)
r2$set(
  slider = TRUE,
  title = "IRIS",
  width = 700
)
r2$print('chart', include_assets=T, cdn=T)
```

### Table
```{r table}
r2 <- dTable(iris)
r2$print('table', include_assets=T, cdn=T)
```
4

1 回答 1

5

出现问题是因为jQuery被包含两次。一个快速的解决方法是添加一个文档挂钩,以knitr删除重复的行jQuery。确保cache = F为这个块设置,以便每次调用时都会运行它knitr。在未来的版本中,我将添加一个jQuery参数,print以便您可以关闭它,如果您已经加载jQuery到您的页面上。

```{r cache = F}
library(knitr)
knit_hooks$set(document = function(doc){
  pat = "<script type='text/javascript' src=http://code.jquery.com/jquery-1.10.2.min.js></script>"
  gsub(pat, "", doc)
})
```
于 2013-11-06T13:57:27.713 回答