2016-04-17 2 views
2

У меня есть 20x2 dataframe. Я преобразовал этот файл данных в таблицу data.table для выполнения некоторых операций (удалил объяснение операций и цели как вне сферы действия). Преобразование позволило мне избежать использования цикла for. Но преобразование создает некоторые проблемы по очереди.Преобразование data.table в data.frame (т. Е. Отмена setDT)

Мне нужно преобразовать 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"))] 
+2

Как и 'setDT()', существует 'setDF()' –

+0

EUREKA. Отработав полдня, отлаживая эту штуку, чтобы наконец найти формат data.table, была моей проблемой. Это фиксировало это. Спасибо. Вы хотите, чтобы это было ответом, поэтому я могу отметить вопрос как ответ? Или, может быть, вопрос слишком простой и должен быть удален ... – Krug

+0

@Hadd Этот? http://stackoverflow.com/q/25020092/ У него нет ответа setDF (пока), хотя – Frank

ответ

5

Так же, как setDT() преобразует входные данные в таблицу данных путем ссылки, есть также setDF(), который преобразует входные данные в кадре данных путем ссылки. Так что просто позвоните

setDF(df) 

и вы вернетесь к кадру данных без каких-либо копий.

Смежные вопросы