将data.table转换为数据框而不进行复制

时间:2014-07-29 16:16:42

标签: r data.table

This question and answer set询问如何在不复制的情况下将data.frame转换为data.table,并使用手动方法和优秀的setDT()函数说明如何执行此操作。

如何安全地将 data.table 转换回数据框而不复制?问题和推理与上面提到的问题类似。

1 个答案:

答案 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')

但仍然认为这是“退步”。