Как убрать временную составляющую в совокупности объекта tsibble? - PullRequest
2 голосов
/ 05 апреля 2020

Я работал с пакетом tsibble и не могу понять, как правильно удалить компонент времени из результата агрегации. Поэтому в следующем наборе данных я хочу получить среднее количество поездок по регионам и штатам. Правильный ли способ конвертировать tsibble в tibble (может быть, я просто не уверен) или есть какой-то вариант, который мне не хватает для достижения агрегации?

library(tsibble)
library(dplyr)

tourism %>% group_by(Region, State) %>% summarise(Mean_trips = mean(Trips))

# A tsibble: 6,080 x 4 [1Q]
# Key:       Region, State [76]
# Groups:    Region [76]
   Region   State           Quarter Mean_trips
   <chr>    <chr>             <qtr>      <dbl>
 1 Adelaide South Australia 1998 Q1       165.
 2 Adelaide South Australia 1998 Q2       112.
 3 Adelaide South Australia 1998 Q3       148.

## This is not what I want, this is what I want:

tourism %>% as_tibble %>% group_by(Region, State) %>% summarise(Mean_trips = mean(Trips))

# A tibble: 76 x 3
# Groups:   Region [76]
   Region                     State              Mean_trips
   <chr>                      <chr>                   <dbl>
 1 Adelaide                   South Australia        143.  
 2 Adelaide Hills             South Australia          7.18

Ответы [ 2 ]

2 голосов
/ 05 апреля 2020

Для полноты: из справочника tsibble

Глаголы по столбцам, включая select (), transmute (), summaze (), mutate () & transmute () , держите время вокруг. То есть переменная индекса не может быть отброшена для цибла. Если какая-либо ключевая переменная будет изменена, она проверит, является ли она внутренним циблом. Используйте as_tibble (), чтобы оставить контекст времени.

Временной компонент не может быть отброшен, и as_tibble - правильный выбор для преобразования в тиббл

1 голос
/ 05 апреля 2020

Если мы используем select(-Quarter) для данных tourism, это дает информационное сообщение об ошибке.

library(tsibble)
library(dplyr)

tourism %>% select(-Quarter)

Ошибка: столбец Quarter (индекс) не может быть удален. Вам нужно as_tibble() для работы с фреймом данных?

Следовательно, as_tibble является правильным способом преобразования в таблицу.

tourism %>% 
    as_tibble %>% 
    group_by(Region, State) %>% 
    summarise(Mean_trips = mean(Trips))

#   Region                     State              Mean_trips
#   <chr>                      <chr>                   <dbl>
# 1 Adelaide                   South Australia        143.  
# 2 Adelaide Hills             South Australia          7.18
# 3 Alice Springs              Northern Territory      14.2 
# 4 Australia's Coral Coast    Western Australia       47.4 
#...
...