Создание диаграммы в R Программирование с использованием определенных строк из CSV-файла - PullRequest
0 голосов
/ 29 октября 2018

Я хочу создать диаграмму в R. Каждый столбец должен отображать каждый день недели. Пн, вт, ср, четверг, пт, сб, вс. Мой CSV-файл выглядит следующим образом: у меня 288 строк данных для каждого дня недели. Я хочу создать гистограмму в среднем по третьему столбцу (это называется заполнением). Кто-нибудь знает, как создать диаграмму, подобную этой, где я могу указать определенные строки вместо столбцов?

17/09/2018 00:00,00:02:26,37,47,146
17/09/2018 00:05,00:02:26,37,47,146
17/09/2018 00:10,00:02:26,37,47,146
17/09/2018 00:15,00:02:26,37,47,146

18/09/2018 00:00,00:03:34,26,20,214,0
18/09/2018 00:05,00:03:34,26,20,214,0
18/09/2018 00:10,00:00:28,5,0,28
18/09/2018 00:15,00:00:02,3,0,2
18/09/2018 00:20,00:00:01,3,0,1

1 Ответ

0 голосов
/ 29 октября 2018

Вот пример, который, я думаю, делает то, что вы хотите.

## packages
library(lubridate) # for changing the dates to days of week
library(dplyr) # for reformatting the data
library(forcats) # for recoding factors
library(ggplot2) # for plotting

## import your data
dat <- data.frame(time = c("17/09/2018 00:00", "17/09/2018 00:05", "18/09/2018 00:00", "18/09/2018 00:05"),
              occupancy = c(37, 37, 26, 26))

## get average occupancy and add new variable with day of the week
dat.n <- dat %>%
  mutate(time = dmy_hm(time)) %>%
  mutate(month = month(time)) %>%
  mutate(day_month = mday(time)) %>%
  mutate(day_week = wday(time)) %>%
  group_by(month, day_month) %>%
  summarize(avg_occupancy = mean(occupancy), day_week = unique(day_week)) %>%
  mutate(day_week = fct_recode(as.factor(day_week), "Monday" = "2",
                           "Tuesday" = "3"))

## make barplot
ggplot(dat.n, aes(x = day_week, y = avg_occupancy)) +
  geom_bar(stat = "identity") +
  xlab("") +
  ylab("Average Occupancy")

полученный барплот

...