У меня есть большие набор данныхПроверка недостающих элементов в рваной панели, хранящейся в data.table
dim(dt)
[1] 422096 162
где dt
является data.table с ключом 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, если нет отверстий во временных рядах. Я понимаю, что у меня могут быть некоторые NA в моей колонке book_lev
, поэтому я хотел бы еще больше ограничить. Кроме того, в целом я новичок в data.tables, и я хотел бы посмотреть, есть ли лучшие способы писать то, что я только что написал.
Небольшой образец данных, которые вы можете загрузить с помощью команды R в load
, доступен здесь: http://econsteve.com/r/dt_sample.Robj
Не могли бы вы оставить подмножество ваших данных (например, содержит полдюжины строк за пару лет и, возможно, 4 или 5 столбцов)? Вы получите лучший ответ таким образом и сохраните нам некоторую умственную энергию. Кроме того, я не вижу столбец 'bl2', на который ссылается ваш код. Должно быть? –
@Josh Подмножество данных находится в следующем объекте R. http://econsteve.com/r/dt_sample.Robj – stevejb
@ JoshO'Brien Я не ссылался на столбец bl2. На самом деле это будет book_lev. Я делаю редактирование в исходном сообщении. Большое спасибо за помощь. – stevejb