R: as_tbl_time Ошибка: указанный индекс не основан на времени - PullRequest
0 голосов
/ 17 апреля 2020

Это мой самый первый пост, и я совершенно новичок в R (R Gui), я глубоко извиняюсь, если пишу не в том месте, разделе или даже на неправильном веб-сайте. Я надеюсь, что это не так!

Я провожу несколько дней, пытаясь найти способ решить возникшую проблему, но не могу найти решение.

Я пытаюсь используйте пакет anomalize. Для этого необходимо преобразовать данные в tibble time.

. После того, как я импортировал свои данные (.CSV), я смог преобразовать их в таблицу (tbl_df), но, если попытался преобразовать их в tbl_time Я получаю это сообщение:

Ошибка: указанный индекс не основан на времени

Я попытался настроить формат .CSV (не уверен, что необходимо) изменить формат даты и метки, но все же ... не работает!

Я вставлю то, что у меня есть, я уверен, что некоторые из вас смогут мне помочь. Большое спасибо!

Это часть исходного набора данных, такая же простая, как месячные точки сбора данных (gwt) и дата приобретения рядом с ней (date)

              date gwt
1 01/02/2003 01:21:18 0.41
2 01/03/2003 01:21:18 0.35
3 01/04/2003 01:21:18 0.22
4 01/05/2003 01:21:18 0.03
5 01/06/2003 01:21:18 -0.05
6 01/07/2003 01:21:18 -0.09
7 01/08/2003 01:21:18 -0.10
8 01/09/2003 01:21:18 -0.02
9 01/10/2003 01:21:18 0.04
10 01/11/2003 01:21:18 0.11
11 01/12/2003 01:21:18 0.08
12 01/01/2004 01:21:18 0.00
13 01/02/2004 01:21:18 -0.19
14 01/03/2004 01:21:18 -0.34
15 01/04/2004 01:21:18 -0.46
16 01/05/2004 01:21:18 -0.59
17 01/06/2004 01:21:18 -0.63

Это tbl_df Я смог получить:

A tibble: 46 x 2
date gwt

    1 01/02/2003 01:21:18 0.41
    2 01/03/2003 01:21:18 0.35
    3 01/04/2003 01:21:18 0.22
    4 01/05/2003 01:21:18 0.03
    5 01/06/2003 01:21:18 -0.05
    6 01/07/2003 01:21:18 -0.09
    7 01/08/2003 01:21:18 -0.1
    8 01/09/2003 01:21:18 -0.02
    9 01/10/2003 01:21:18 0.04
    10 01/11/2003 01:21:18 0.11

... with 36 more rows

, и это сообщение я получаю, когда пытаюсь получить tbl_time (как упоминалось выше):

t2 <- as_tbl_time(t1, date)
Error: Specified 'index' is not time based

PS Я пытался изменить формат, убрав время и оставив только дату, но это ничего не меняет.

Кто-нибудь может помочь? Я был бы очень признателен за это

Извините за длинный пост, заранее извиняюсь за любую ошибку.

1 Ответ

0 голосов
/ 17 апреля 2020

Я знаю, насколько поначалу сложно работать с правильными форматами столбцов.

Я бы предложил проверить правильность формата столбцов после того, как вы прочитали файл .csv и преобразовали его в tbl_df. Я подозреваю, что ваш date столбец имеет тип character. Итак, самый простой способ - использовать функцию transmute из dplyr для переформатирования столбца date:

tbl <- tbl_df %>% 
  transmute(date = as.POSIXct(strptime(date,"%d/%m/%Y %H:%M:%S")),
            gwt = gwt)

Ваш tbl должен выглядеть следующим образом:

> tbl
# A tibble: 17 x 2
   date                  gwt
   <dttm>              <dbl>
 1 2003-02-01 01:21:18  0.41
 2 2003-03-01 01:21:18  0.35
 3 2003-04-01 01:21:18  0.22
 4 2003-05-01 01:21:18  0.03
 5 2003-06-01 01:21:18 -0.05
 6 2003-07-01 01:21:18 -0.09
 7 2003-08-01 01:21:18 -0.1 
 8 2003-09-01 01:21:18 -0.02
 9 2003-10-01 01:21:18  0.04
10 2003-11-01 01:21:18  0.11
11 2003-12-01 01:21:18  0.08
12 2004-01-01 01:21:18  0   
13 2004-02-01 01:21:18 -0.19
14 2004-03-01 01:21:18 -0.34
15 2004-04-01 01:21:18 -0.46
16 2004-05-01 01:21:18 -0.59
17 2004-06-01 01:21:18 -0.63

Обратите внимание на тип столбца date - теперь он dttm.

Теперь вы можете легко преобразовать tbl в tbl:

* 1024 с учетом времени. *

Вот результат:

> tbl.t
# A time tibble: 17 x 2
# Index: date
   date                  gwt
   <dttm>              <dbl>
 1 2003-02-01 01:21:18  0.41
 2 2003-03-01 01:21:18  0.35
 3 2003-04-01 01:21:18  0.22
 4 2003-05-01 01:21:18  0.03
 5 2003-06-01 01:21:18 -0.05
 6 2003-07-01 01:21:18 -0.09
 7 2003-08-01 01:21:18 -0.1 
 8 2003-09-01 01:21:18 -0.02
 9 2003-10-01 01:21:18  0.04
10 2003-11-01 01:21:18  0.11
11 2003-12-01 01:21:18  0.08
12 2004-01-01 01:21:18  0   
13 2004-02-01 01:21:18 -0.19
14 2004-03-01 01:21:18 -0.34
15 2004-04-01 01:21:18 -0.46
16 2004-05-01 01:21:18 -0.59
17 2004-06-01 01:21:18 -0.63
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...