This question and answer set询问如何在不复制的情况下将data.frame转换为data.table,并使用手动方法和优秀的setDT()
函数说明如何执行此操作。
如何安全地将从 data.table 转换回数据框而不复制?问题和推理与上面提到的问题类似。
答案 0 :(得分:1)
我认为这是一个完全错误的想法,因为上面评论中列出的所有原因,可能是我不知道的原因,但您可以用[.data.table
替换[data.frame
函数。这样可以防止@Arun提出的关于需要为[
- 函数使用额外参数的问题:
assignInNamespace( "[.data.table", getAnywhere( `[.data.frame`), ns="data.table")
通常检查'data.frame'类的所有函数由于继承而已经正常工作。
编辑:Arun的评论提供了一种不那么激烈的方法,因为覆盖核心数据。表'[' - 函数本质上是“不诚实的”。我想更诚实的做法是解除整个NAMESPACE的负担。如果目标只是使用fread
,我想知道是否只能输入那些函数和任何依赖项。
setattr(DT, 'class', 'data.frame')
但仍然认为这是“退步”。