我有一个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格式。我做错了什么?想法?谢谢
答案 0 :(得分:3)
&#34; data.table&#34;中的set*
个函数不要复制您的数据。
要制作副本,您应该使用as.data.table
或使用&#34; data.table&#34;中的copy
功能。封装