首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在data.table::data.table对象上使用DT::datatable

无法在data.table::data.table对象上使用DT::datatable
EN

Stack Overflow用户
提问于 2016-04-27 02:04:47
回答 2查看 1.6K关注 0票数 1

我尝试在我的闪亮的应用程序中创建一个DataTable,代码如下:

代码语言:javascript
复制
    output$table <- renderDataTable({
    dat
    })

这个dat对象是一个data.table。我得到了一个错误:

警告:错误在dimnames.data.table: data.table继承从data.frame (从1.5),但这个data.table没有。它是手动创建的(例如使用“structure”而不是“data.table”),还是使用早期版本的data.table保存到磁盘上?正确的类是c('data.table','data.frame')。

是因为我不能使用data.table创建DataTable吗?我能做什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-28 17:04:31

谢谢@DaisyLee指出了这个问题。似乎您成功地挖掘了一个相当晦涩且非常古老的测试,该测试在代码中错误地出错了。

提出了一个问题关于这个问题,并提出了一个解决办法。

您的代码现在应该运行在data.table版本的1.9.8+上。

更新之后,您应该能够运行您最初尝试过的代码片段,没有错误,也不需要使用as.data.tablesetDT

如果您感兴趣,请下面是修复的代码。

票数 0
EN

Stack Overflow用户

发布于 2021-04-28 20:12:38

我想提交这个可复制的解决方案示例,因为我在尝试将data.table函数应用于没有data.table类的数据帧时遇到了同样的困难。我花了很大的精力自己解决这个问题,因为这个页面上的解决方案被隐藏在评论中,而这些评论并没有解释如何复制解决方案。

当我发现DF2丢失了数据表类时,我就在transform()和aggregate()的关联之后立即使用了DT2 <- as.data.table(DF2)。换句话说,我只是在公式的两边使用了我原先认为是数据表的对象的名称。例如,如果它被命名为PuTTy_2 <- DF2,那么我的公式是

代码语言:javascript
复制
PuTTy_2 <- as.data.table(PuTTy_2)

我运行了所有可用的包更新,包括data.table,这并没有解决我的问题。只有当我尝试类( DT2 )和类(DT1)时,我才发现DT2缺少数据表类,并且只有数据框架类。因此,DF2和DT1应该是合适的缩写。

这似乎是运行DF2 <- transform(DT1,.)的结果。还有DF2 <-聚合(.,DT1)。虽然我没有通过对代码进行故障排除来直接检查这一点,但我查找了transform()函数和聚合()函数,并确认这两个函数都完全与数据框架一起工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36879018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档