Я новичок в R и ggplot2, и мне было интересно, как я могу создать временную шкалу, отображающую точки в заданное время, используя R? У меня также есть проблемы со свиданиями, которые у меня есть. (Я не уверен, стоит ли публиковать это как два вопроса, но приступим).
У меня есть фрейм данных с годом и месяцем в виде символов в формате ГГГГММ, именами двух человек и событием, которое имело место.
Нравится:
> data
YearMonth Person1 Person2 Event
200606 Alice Bob event1
200606 Bob Alice event2
200608 Alice Bob event3
200701 Alice Bob event3
200703 Bob Alice event2
200605 Alice Bob event4
Изначально даты были целыми числами, которые я преобразовал в символы с помощью as.character()
. Я пытаюсь преобразовать его в форматированную дату. Я использовал as.Date()
и пробовал разные способы форматирования даты. Ближе всего к этому я подошел с data$YearMonth <- as.Date(data$YearMonth,"%Y")
, но это дало мне «2006-12-20» и «2007-12-20» для всех строк 2006xx и 2007xx соответственно. Есть ли способ сделать это, чтобы я получил что-то вроде «ГГГГ-ММ» или «ГГГГ / ММ»?
Я также пробовал data$YearMonth <- strptime(data$YarMonth, "%Y%m")
, но это дало мне <NA>
значений.
Но моя главная проблема - это сроки.
Следующее изображение - это тот формат, который мне нужен:
но с осью x, показывающей месяц и год (например, 2006-06, 2006-07… 2007-06), и линиями, отходящими от оси, помеченными как Event, Person1 и Person2.
Я просмотрел пакет «временная шкала» на ?timeline
, но во фрейме данных, который у меня есть, нет данных за периоды времени (даты начала и окончания). У меня просто есть момент времени (YearMonth).
Я также попробовал пример на Нарисуйте хронологическую шкалу времени с помощью ggplot2 с помощью ggplot2. Однако у меня нет дислокаций для оси y, и я хотел, чтобы линии событий выходили за пределы оси x.
Примечание. Это очень упрощенный пример, поскольку у меня есть около тысячи строк за период с июня 2006 г. по июнь 2007 г. Можно ли вообще создать временную шкалу с таким большим количеством данных?
Любая помощь горячо приветствуется. Спасибо за ваше время!