Найдите 5 самых покупаемых продуктов, отсортированных по месяцам - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь научиться использовать R, но у меня это упражнение все еще слишком сложное для меня, поэтому я хотел бы получить предложения о возможной реализации.

Создайте вакансию для создания на каждый месяц 2015 года 5 самых продаваемых продуктов. затем количество проданных штук.

Мой ввод данных:

2015-9-8, салат

2015-8-30, печенье, сыр, салат, хлеб

2015-11-21, хлеб

2015-12-2, лоза

2015-3-12, печенье, хлеб, молоко

...

Мне нужна помощь для создания выходного файла, содержащего результат, как.

Пример: * * один тысяча двадцать-одна 2015-01: хлеб 852, молоко 753, мясо 544, лоза 501, рыба 488 2015-02: молоко 744, сливочное масло 655, яйца 585, пиво 498, хлеб 457 Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 22 мая 2019

Вы можете использовать комбинацию tidyverse пакетов (dplyr & tidyr) и lubridate примерно так:

library(tidyverse)
library(lubridate)
data <- read.table(text = "2015-9-8,salad

          2015-8-30,cookies,cheese,salad,bread

          2015-11-21,bread

          2015-12-2,vine

          2015-3-12,cookies,bread,milk", 
          header = F)
data %>%
  separate(V1, into = c("date", letters[1:5]), sep = ",") %>% 
  gather(key, item, -date, na.rm = TRUE) %>% 
  select(-key) %>% 
  mutate(date = ymd(date), 
         month = floor_date(date, unit = "month")) %>% 
  group_by(month, item) %>% 
  count() %>% 
  spread(item, n, fill = 0)


## A tibble: 5 x 7
## Groups:   month [5]
#    month      bread cheese cookies  milk salad  vine
#    <date>     <dbl>  <dbl>   <dbl> <dbl> <dbl> <dbl>
#  1 2015-03-01     1      0       1     1     0     0
#  2 2015-08-01     1      1       1     0     1     0
#  3 2015-09-01     0      0       0     0     1     0
#  4 2015-11-01     1      0       0     0     0     0
#  5 2015-12-01     0      0       0     0     0     1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...