Регулярное выражение для имен переменных в R (переформатирование набора данных) - PullRequest
0 голосов
/ 26 ноября 2018

Я работаю с набором данных yelp.Имена переменных имеют вид "day.hour".Таким образом, Fri.4 означает пятницу в 4:00, а Fri.22 означает пятницу в 22:00, а значение переменной - это количество проверок за это время.

Я хочу создать график, в котором у меня будет 7 линий.Каждая строка представляет день недели, а каждая строка показывает, как средние изменения отмечаются по часам дня.Таким образом, каждая линия соединяет 24 точки, а у меня 7 линий.

Любая помощь?

Я бы использовал dplyr, но не могу понять, как собрать все переменные понедельника иПеременные во вторник вместе и т. Д., Потому что имена похожи на Tue.01, Tues.02 и т. Д .... Как мне выполнять операции со строками?

Как форматируется мой текущий набор данных: мой набор данных - 1x168 (каждыйпеременная date.time)

Fri.0 114.35897
Sat.0 154.92308
Sun.0 153.96154
Wed.0 93.92308
Fri.1 124.29487
Sat.1 168.07692
Thu.1 105.96154
Wed.1 101.85897
Sat.2 175.00000
Sun.2 157.48718
Thu.2 105.97436
Wed.2 97.08974
Fri.3 108.46154
Sun.3 145.24359

enter image description here

1 Ответ

0 голосов
/ 26 ноября 2018

Это можно сделать с помощью простой трубы прямо в ggplot, нет необходимости group_by в будние дни, ggplot2 эстетика aes(colour = .) сделает группировку.

library(dplyr)
library(stringr)
library(ggplot2)

dh %>%
  mutate(Weekday = str_extract(day.hour, "^[[:alpha:]]{3}"),
         Day = as.integer(str_extract(day.hour, "[[:digit:]]*$"))) %>%
  ggplot(aes(x = Day, y = value, colour = Weekday)) +
  geom_line()

enter image description here

Данные.

dh <- read.table(text = "
Fri.0 114.35897
Sat.0 154.92308
Sun.0 153.96154
Wed.0 93.92308
Fri.1 124.29487
Sat.1 168.07692
Thu.1 105.96154
Wed.1 101.85897
Sat.2 175.00000
Sun.2 157.48718
Thu.2 105.97436
Wed.2 97.08974
Fri.3 108.46154
Sun.3 145.24359                 
")

names(dh) <- c("day.hour", "value")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...