我使用了令人惊叹的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)
```
答案 0 :(得分: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)
})
```