Мне нужно отфильтровать данные временных рядов на основе групп. Однако фильтрация должна выполняться в начале (-5 минут) и в конце каждой группы (-2 минуты), это означает, что я хотел бы удалить строки в начале (-5 минут) и заканчивать (-2 минуты) каждого группа.R Фильтрация данных временных рядов для каждой группы
Вот пример кода:
Time <- c("2015-08-21T10:00:51", "2015-08-21T10:02:51", "2015-08-21T10:04:51", "2015-08-21T10:06:51",
"2015-08-21T10:08:51", "2015-08-21T10:10:51","2015-08-21T10:12:51", "2015-08-21T10:14:51",
"2015-08-21T10:16:51", "2015-08-21T10:18:51", "2015-08-21T10:20:51", "2015-08-21T10:22:51")
x <- c(38.855, 38.664, 40.386, 40.386, 40.195, 40.386, 40.386, 40.195, 40.386, 38.855, 38.664, 40.386)
y <- c("a", "a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "b")
data <- data.frame(Time,x,y)
data$Time <- as.POSIXct(data$Time, format = "%Y-%m-%dT%H:%M:%S")
Y столбцы показывают нам группы, которые в данном конкретном случае является и б
Так для этого примера я бы удалить 3 первые строки и 2 последние строки для уровня a, для одной и той же вещи (в моих исходных данных это будет не так просто удалить в соответствии с количеством строк). Так что я хотел бы получить в конце что-то вроде этого:
Time x y
4 2015-08-21 10:06:51 40.386 a
10 2015-08-21 10:18:51 38.855 b
Я хочу отметить, что это только выборочные данные!
Спасибо за помощь!
Я предпочел бы фильтровать данные на основе столбца времени, а не числа строк, мои исходные данные не так хорошо структурированы, как этот, и количество строк в каждой группе различается.
Можете ли вы объяснить, что означает, что «фильтрация должна выполняться в начале (-5 минут) и конце каждой группы (-2 минуты)»? – StrikeR
Эй, я только что объяснил это лучше в своем посте –