2014-09-12 74 views
2

当我尝试在slidingify中添加(data.table/ggplot2)代码时,出现错误。 这是我在slidify代码:slidingify + data.table(ggplot2)错误

## data.table 
```{r} 
library(data.table) 
DT = data.table(x = 1:5, y=6:10) 
setkey(DT, x) 
DT[J(1)] # Error: No J function 
``` 
--- 
## ggplot2 
```{r} 
library(ggplot2) 
a = b = shape = 1:5 
ggplot(data=DT, aes(a, b, col=shape)) + geom_point() # Error: can not find object a 
``` 

所有的代码可以运行外slidify,所以我想有一些关于变量命名错slidify。

我也找到这个链接:data.table error when used through knitr, gWidgetsWWW这可能与我的问题类似,但仍不知道如何解决。

+0

请问您可以给[当前开发版本](https://github.com/Rdatatable/data.table)一试吗? – Arun 2014-09-13 01:18:43

+0

令我惊讶的是,它的工作原理。我认为这是slideify的问题,导致ggplot2命令无法运行。谢谢! – 2014-09-13 02:13:13

+0

有趣:我可以运行第一部分。但是ggplot命令会抛出错误##错误:提供给离散量程的连续值 – JerryWho 2014-09-15 06:38:18

回答

0

只需添加一个答案,以跟进对问题的评论。 data.table的dev版本修复了它,现在在CRAN(data.table v1.9.4)上。但是这打破了针织者v1.7(在CRAN上)修复的针织者kable()。所以基本上,升级到最新的CRAN版本的knitr和data.table,你应该没问题。请告诉我们,如果没有。为好奇


更多细节...

我做了另一个变化到v1.9.5 data.table以使其更加坚固为评估用户代码(如knitr,slidify和包gWidgetsWWW),但不知道data.table本身。这样他们以后不需要知道。下面是该项目:

knitr::kable() works again without needing to upgrade from knitr v1.6 to v1.7. Packages which evaluate user code and don't wish to import data.table need to be added to data.table:::cedta.pkgEvalsUserCode and now only the eval part is made data.table-aware (the rest of such package's code is left data.table-unaware). data.table:::cedta.override is now empty and will be deprecated if no need for it arises.

,这里是在v1.9.4这是一个有点太过分达到并打破knitr :: kable在knitr V1.6和V1.7 knitr修复的项目(但不应该” t需要):

Added shiny, rmarkdown and knitr to the data.table whitelist. Packages which take user code as input and run it in their own environment (so do not Depend or Import data.table themselves) either need to be added here, or they can define a variable .datatable.aware <- TRUE in their namepace, so that data.table can work correctly in those packages. Users can also add to data.table's whitelist themselves using assignInNamespace() but these additions upstream remove the need to do that for these packages.