У меня большой набор данных
dim(dt)
[1] 422096 162
, где dt
- это таблица данных с ключом tic
. Я пытаюсь измерить для каждой группы, сколько у меня пропущенных записей. Группы - это временные ряды, и dt содержит столбец date
, представляющий собой дату R, и столбец book_lev
, представляющий интерес для меня.
Это мой код:
dt <- dt[sumdt]
sumdt <- dt[ ,list(min.date=min(date), max.date=max(date)), by="tic"]
sublengths <- dt[,list(tslen=length(date)),by=tic, mult="last"]
bt2 <- dt[sublengths, mult="first"]
bt2[, max.year:=extractyear(max.date)]
bt2[, min.year:=extractyear(min.date)]
bt2[, data.fullness:=tslen/(max.year - min.year + 1)]
dt <- dt[bt2]
Моя идея состояла в том, чтобы я создал это значение data.fullness, которое должно равняться 1, если во временном ряду нет дыр. Я понимаю, что в моем столбце book_lev
могут быть некоторые NA, поэтому я бы хотел еще больше ограничиться. Кроме того, в целом я новичок в data.tables и хотел бы узнать, есть ли лучшие способы написать то, что я только что написал.
Небольшая выборка данных, которую вы можете загрузить с помощью команды R's load
, доступна здесь: http://econsteve.com/r/dt_sample.Robj