Я выполнил задание Pig на кластере Hadoop, который разбил кучу данных на нечто, что R может обработать для проведения когортного анализа. У меня есть следующий скрипт, и со второй до последней строки у меня есть данные в формате:
> names(data)
[1] "VisitWeek" "ThingAge" "MyMetric"
VisitWeek - это дата. ThingAge и MyMetric являются целыми числами.
Данные выглядят так:
2010-02-07 49 12345
Сценарий, который у меня пока есть:
# Load ggplot2 for charting
library(ggplot2);
# Our file has headers - column names
data = read.table('weekly_cohorts.tsv',header=TRUE,sep="\t");
# Print the names
names(data)
# Convert to dates
data$VisitWeek = as.Date(data$VisitWeek)
data$ThingCreation = as.Date(data$ThingCreation)
# Fill in the age column
data$ThingAge = as.integer(data$VisitWeek - data$ThingCreation)
# Filter data to thing ages lt 10 weeks (70 days) + a sanity check for gt 0, and drop the creation week column
data = subset(data, data$ThingAge <= 70, c("VisitWeek","ThingAge","MyMetric"))
data = subset(data, data$ThingAge >= 0)
print(ggplot(data, aes(x=VisitWeek, y=MyMetric, fill=ThingAge)) + geom_area())
Эта последняя строка не работает. Я перепробовал множество вариаций, баров, гистограмм, но, как обычно, R-документы побеждают меня.
Я хочу, чтобы он отображал стандартную диаграмму с накоплением в стиле Excel - один временной ряд для каждого ThingAge, сложенного по неделям по оси X, с датой по оси Y. Пример такого вида диаграммы здесь: http://upload.wikimedia.org/wikipedia/commons/a/a1/Mk_Zuwanderer.png
Я прочитал документы здесь: http://had.co.nz/ggplot2/geom_area.html и http://had.co.nz/ggplot2/geom_histogram.html и этот блог http://chartsgraphs.wordpress.com/2008/10/05/r-lattice-plot-beats-excel-stacked-area-trend-chart/, но я не могу заставить его работать на меня.
Как мне этого добиться?