https://gtvault -my.sharepoint.com /: t: / g / personal / shousley6_gatech_edu / EZZSVk6pPpJPvE0fXq1W2KkBhib1VDoV_X5B0CoSerdjFQ? E 101 * 101 * i1 * 101 * i1иметь рабочее решение, которое создает индекс из канала триггера и разделяет набор данных по этому индексу.Поскольку триггеры имеют разную расстановку во времени, последующие подмножества фреймов данных не согласованы, и иногда существуют «дополнительные» подмножества, которые предшествуют «важным» (например, «res $ 0»).Кроме того, мне нужно, чтобы поднаборы были сопоставлены по общему времени и выровнены для начала триггера.
Мое текущее решение «обрезает» списки фреймов данных до одинакового размера (в примере до первых 15 000 строк).Хотя это технически работает, это кажется неуклюжим.Я также пытался перевести решение SQL с помощью FETCH NEXT, но эти функции недоступны в SQLite, поддерживаемом в R.
Я полностью открыт для альтернатив, поэтому, пожалуйста, не ограничивайтесь моим текущим решением.
##create index to detect whenever an event trigger occurs
idx<-c(0, cumsum(diff(Time_Series_Data_Example$X7.ramptrig) >0))
## split the original dataframe on event triggers
split1<-split(Time_Series_Data_Example, idx)
## cuts DFs down to 1.5s
res <- lapply(split1, function(x){
x <- top_n(x, -15000)
})
Вот пример вывода данных: 'head (res [["1"]]'