R:尝试应用lazy_dt以使用dtplyr时,出现env_get_list错误



我正在尝试在R Shiny中创建一个仪表板。作为这个仪表板的一部分,我有一个非常大的数据集,它有一个反应性添加的列,而这个数据集的三个反应性子集是通过在不同的日期进行过滤而产生的。

到目前为止,我已经通过dplyr和使用过滤和变异功能实现了上述功能。然而,我注意到,似乎是代码中的这些点减缓了它的速度。当触发这些表更新的任何反应变量发生变化时,处理每个表大约需要10秒。所以我想加快速度。

我知道dplyr比data.table慢得多,但另一方面,它更容易理解语法。我也知道dtplyr包的存在是为了将dplyr代码翻译成data.table语法,但我很难让它正常工作。

我一直在看文档和一些youtube演示,据我所知,为了使用dtply,我似乎需要使用lazy_dt函数来转换表,然后将标准dplyr函数应用于该表,然后使用as.data.table((或as.tible((命令将其转换回数据表。

然而,代码不起作用,尽管我基本上遵循了与演示中完全相同的语法。

下面是一些使用我在主代码中导入的库的示例代码,它使用iris数据集。它在打印和as.data.table命令中产生以下错误:

Error in env_get_list(ns_env("data.table"), dt_funs) : 
argument "default" is missing, with no default

我不知道这个错误是什么意思,也不知道为什么会发生。不存在";默认";论点lazy_dt唯一需要的参数是X,这是要通过它传递的数据集

这是示例代码。我正在关注这个Youtube教程。。。https://www.youtube.com/watch?v=qwHHVU-NBLw。。。你可以看到库后的前三行代码与视频中的语法完全相同,但在视频中,print函数打印表格,但我的函数会产生错误。有什么想法吗?注意:即使在将其应用于实际代码时,我也会遇到这个错误,所以这不仅仅是因为我试图打印lazy_dt表。

library(shiny)
library(shinydashboard)
library(DT)
library(data.table)
library(dtplyr)
library(dplyr)
library(tidyverse)
library(Dict)
library(hash)
library(ModelMetrics)
library(vroom)
library(lubridate)
library(Rmisc)
iris_lazy <- dtplyr::lazy_dt(x=iris)
class(iris_lazy)
print(iris_lazy)
as.data.table(iris_lazy)

尝试将您的data.table版本升级为>=1.13.0.data.table的最低要求将在dtplyr的下一版本中更新。

https://github.com/tidyverse/dtplyr/issues/224

相关内容

  • 没有找到相关文章

最新更新