Данные, которые я импортирую, описывают числовые измерения, выполненные в разных местах для более или менее равномерно распределенных временных меток. иногда это "равномерно распространенное" на самом деле не так, и я должен отбросить некоторые из значений, это не важно, какой из них, если у меня есть одно значение для каждой метки времени для каждого местоположения.
что я делаю с данными? Я добавляю его в файл result
data.frame. Там я столбец timestamp
и значения в столбце timestamp, они определенно равномерно распределены в соответствии с step
.
timestamps <- ceiling(as.numeric((timestamps-epoch)*24*60/step))*step*60 + epoch
result[result$timestamp %in% timestamps, columnName] <- values
Это НЕ работает, когда у меня есть отметки времени, которые попадают на тот же промежуток времени. Это пример:
> data.frame(ts=timestamps, v=values)
ts v
1 2009-09-30 10:00:00 -2.081609
2 2009-09-30 10:04:18 -2.079778
3 2009-09-30 10:07:47 -2.113531
4 2009-09-30 10:09:01 -2.124716
5 2009-09-30 10:15:00 -2.102117
6 2009-09-30 10:27:56 -2.093542
7 2009-09-30 10:30:00 -2.092626
8 2009-09-30 10:45:00 -2.086339
9 2009-09-30 11:00:00 -2.080144
> data.frame(ts=ceiling(as.numeric((timestamps-epoch)*24*60/step))*step*60+epoch,
+ v=values)
ts v
1 2009-09-30 10:00:00 -2.081609
2 2009-09-30 10:15:00 -2.079778
3 2009-09-30 10:15:00 -2.113531
4 2009-09-30 10:15:00 -2.124716
5 2009-09-30 10:15:00 -2.102117
6 2009-09-30 10:30:00 -2.093542
7 2009-09-30 10:30:00 -2.092626
8 2009-09-30 10:45:00 -2.086339
9 2009-09-30 11:00:00 -2.080144
в Python я бы (неправильно) использовал словарь для достижения того, что мне нужно:
dict(zip(timestamps, values)).items()
возвращает список пар, где первая координата уникальна.
в R Я не знаю, как это сделать компактным и эффективным способом.