R:为什么不是data.table自动分配data.frame?

时间:2015-11-18 18:37:44

标签: r dataframe data.table

我有一个data.frame,这里有一个例子:

df <- data.frame(object = c("apples","tomatoes", "apples","pears" ),
                 Value = c(50,10,30,40))

我制作了这个df的副本,以格式化data.frame:

forDT <- df

新复制的data.frame我分配给data.table执行数据分割:

require(data.table)
tmp = setDT(forDT)[, list(grp=list(.SD)), by=.(object), .SDcols=names(forDT)]
setattr(import_split <- tmp$grp, 'names', paste(tmp$object, sep="."))

在接下来的步骤中,我需要原始的data.frame,我没有将其转换为data.table以进行进一步的计算(因为我更熟悉data.frames,这就是为什么我在开始时制作副本)。但是,原始df也是data.table格式。我做错了什么?想法?谢谢

1 个答案:

答案 0 :(得分:3)

&#34; data.table&#34;中的set*个函数不要复制您的数据。

要制作副本,您应该使用as.data.table或使用&#34; data.table&#34;中的copy功能。封装