Есть ли опция фильтра для даты и времени в R - PullRequest
0 голосов
/ 04 октября 2019

У меня есть фрейм данных, который содержит и дату и время . Я не думаю, что фильтр DateRangeInput работает здесь. Я использовал этот фильтр в R блестящий и похоже, что он не учитывает время. Мне также нужно время в моем фильтре. Так есть ли вариант, кроме DateRangeInput. Я имел в виду, что DateRangeinput предназначен только для даты, которую я считаю.

as1
                   da cat
1 2016-06-04 04:05:45   A
2 2016-06-04 04:05:46   B
3 2016-06-04 04:05:45   C
4 2016-06-04 04:05:46   D

1 Ответ

1 голос
/ 04 октября 2019

Во-первых, ваши данные даже не отсортированы в вашем столбце времени. Итак, давайте исправим это.

Во-вторых, все типы данных R могут индексироваться по позиции или путем логического сравнения. Так что это все, что вам нужно.

Смоделированный пример, поскольку вы не предоставили воспроизводимый код:

df <- data.frame(t=ISOdatetime(2019, 1, 1, 10, 0, 0) + 0:9*60, v=LETTERS[1:10])
df    
df[ df$t > ISOdatetime(2019, 1, 1, 10, 2, 0) & df$t < ISOdatetime(2019, 1, 1, 10, 9, 0), ]

Вывод:

R> df <- data.frame(t=ISOdatetime(2019, 1, 1, 10, 0, 0) + 0:9*60, v=LETTERS[1:10])
 R> df
                      t v
 1  2019-01-01 10:00:00 A
 2  2019-01-01 10:01:00 B
 3  2019-01-01 10:02:00 C
 4  2019-01-01 10:03:00 D
 5  2019-01-01 10:04:00 E
 6  2019-01-01 10:05:00 F
 7  2019-01-01 10:06:00 G
 8  2019-01-01 10:07:00 H
 9  2019-01-01 10:08:00 I
 10 2019-01-01 10:09:00 J
!R> df[ df$t > ISOdatetime(2019, 1, 1, 10, 2, 0) & df$t < ISOdatetime(2019, 1, 1, 10, 9, 0), ]
                     t v
 4 2019-01-01 10:03:00 D
 5 2019-01-01 10:04:00 E
 6 2019-01-01 10:05:00 F
 7 2019-01-01 10:06:00 G
 8 2019-01-01 10:07:00 H
 9 2019-01-01 10:08:00 I
 R>

Существует множество других способов создания объектов Datetime. as.POSIXct() один, я использую anytime::anytime() много для анализа (но тогда я тоже написал это ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...