将data.table转换为data.frame(即undo setDT)

时间:2016-04-17 00:59:27

标签: r dataframe data.table

我有一个20x2的数据帧。我将该数据帧转换为data.table以执行某些操作(删除了对操作和目标的解释超出范围)。转换允许我避免使用for循环。但转换产生了一些问题。

我需要将df data.table转换回data.frame。我怎样才能做到这一点?

非常感谢你的帮助。

df <- data.frame(LastPrice = c( 1221, 1220, 1220, 1217, 1216,  1218 , 1216, 1216, 1217, 1220, 1219, 1218, 1220, 1216, 1217, 1218, 1218, 1207, 1206, 1205), KCT = c( 1218, 1218, 1219, 1218, 1221,  1217 , 1217, 1216, 1219, 1216, 1217, 1216, 1219, 1217, 1218, 1217, 1217, 1217, 1219, 1217))

library(data.table)
setDT(df)
df[, check := as.integer(LastPrice > KCT)]
df[, Signal := do.call(pmin, shift(check, 0:2, type="lead"))]

1 个答案:

答案 0 :(得分:7)

就像var type = typeof(Test); var collInterface = type.GetInterfaces()[0]; var generic = collInterface.GetGenericArguments()[0]; 通过引用将其输入转换为数据表一样,还有setDT()通过引用将其输入转换为数据帧。所以请致电

setDF()

然后您将返回没有复制的数据框。