安全地将data.table转换回data.frame

Mic*_*ael 11 r data.table

data.table从对象中删除/删除类,将其转换回data.frame 是最安全的方法是什么?

我问,因为我使用的脚本依赖于以下代码:

newcol.index <- ncol(my.data) +1
my.data[,newcol.index] <- 3
colnames(my.data)[newcol.index] <- "test"
Run Code Online (Sandbox Code Playgroud)

data.table套餐显然不喜欢这个,但它的工作使用类的对象罚款data.frame.

Jos*_*ien 14

as.data.framedata.tables 的方法可能是最安全的函数.(尝试输入getAnywhere("as.data.frame.data.table")以确切了解它的作用.)

library(data.table)
DT <- data.table(a=1:4, b=letters[c(1,1,2,2)], key="a")

class(as.data.frame(DT))  ## OR:  as(X, "data.frame")
# [1] "data.frame"
Run Code Online (Sandbox Code Playgroud)

  • 这些天我们有`setDF` (10认同)
  • @ user5359531 - 与我提出的解决方案不同,`setDF()`更改了对象的类.要查看它的实际效果,请在我的答案中运行前两行代码,然后执行`class(DT); setDF(DT); 类(DT)`. (2认同)
  • @JoshO'Brien,鉴于时代已经改变,我想知道是否值得更新您的答案正文? (2认同)