К моему previous question, из набора данных, как я могу использовать его в течение 20-минутного интервала времени.Установка временных интервалов для графика [R]
Я пробовал оба решения, но оба они показывают одинаковые результаты. Мой набор данных не принимает все значения, когда я пытаюсь преобразовать его в другой временной интервал (скажем, 20 минут).
Возможно ли преобразовать его в data.frame() вместо data.table(). Это один из ответа, данного akrun:
x y date time
1 2 1-1-01 15:00
2 5 1-1-01 17:00
3 1 1-1-01 18:00
5 7 1-1-01 21:00
2 6 1-1-01 22:00
6 3 1-1-01 23:00
9 2 2-1-01 01:00
6 1 2-1-01 04:00
.....
library(data.table)
DT <- setDT(df1)[, {tmp <- as.numeric(substr(time,1,2))
list(time=sprintf('%02d:00', min(tmp):max(tmp)))}, date]
df1[DT, on=c('date', 'time')]
DT <- setDT(df1)[, list(time=sprintf('%02d:00', 0:23)) , date]
res <- df1[DT, on=c('date', 'time')
][,{tmp <- which(!(is.na(x) & is.na(y)))
.SD[tmp[1L]:tmp[length(tmp)]]}]
res
library(zoo)
res[, c('x', 'y') :=lapply(.SD, na.approx), .SDcols= x:y]
Не могли бы вы окупить здесь весь код? –
Ваши исходные данные - один час. Расскажите, как x и y будут разделены на 20-минутный интервал, пропорционально? или у вас есть данные высокой частоты? – Robert
@Robert Да, пропорционально .. У меня есть данные с высокой частотой, но он не является непрерывным ... Иногда у меня есть данные минут, но иногда у меня есть временные интервалы в hrs .. поэтому я пытаюсь иметь умеренный набор данных. –