【发布时间】:2014-08-18 15:48:44
【问题描述】:
我正在尝试将ggvis 与data.table 结合使用,请参见下面的代码。
我收到以下错误:
Error in `:=`(mpg2, mpg/2) :
Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...)
are defined for use in j, once only and in particular ways. See help(":=").
如果我在控制台中运行mtcars[ , mpg2 := mpg / 2] 行没有问题。那么问题是什么? [我仍然怀疑data.table 和ggvis 都使用:=。
---
title: "Untitled"
output: html_document
runtime: shiny
---
```{r echo = FALSE}
library(ggvis)
library(data.table)
mtcars %>%
ggvis(x = ~wt, y = ~mpg) %>%
layer_points()
mtcars = data.table(mtcars)
mtcars[, mpg2 := mpg / 2] # gives error message
# code below does not work as the line above throws an error
mtcars %>%
ggvis(x = ~wt, y = ~mpg2) %>%
layer_points()
```
data.table 1.9.2 版
ggvis 来自 github 0.3.0.9001,因为 CRAN 版本抱怨缺少 knit_print。
【问题讨论】:
-
如果你在 R 会话中运行这些行,而不是编译闪亮的文档,你会得到错误吗?
-
这不是 ggvis 问题。把ggvis注释掉,还是报错。
-
这不是 ggvis 问题。也不是降价问题。它与闪亮有关。删除
runtime: shiny就可以了。 -
我认为它与 this issue 相关,并且(如果是的话)已由 Matt 今天在 1.9.3 中修复。
-
是的。或者,如果 Henk 不想升级到 v1.9.3,可以输入
assignInNamespace("cedta.override", c(data.table:::cedta.override,"rmarkdown"), "data.table")。
标签: r data.table ggvis