#!/usr/bin/env Rscript library(ggplot2) library(plyr) # Process command-line arguments args <- commandArgs(trailingOnly = TRUE) if (length(args) != 2) stop("usage: tweet-engangement input-file output-base-name") input.filename <- args[1] name <- args[2] t <- read.csv(input.filename, header=TRUE) # Convert time to POSIX type t$ptime <- as.POSIXct(strptime(t$time, format="%Y-%m-%d %H:%M %z")) # Plot tweet impressions by hour t$hour <- strftime(t$ptime, "%H", tz="Europe/Athens") s <- ddply(t, ~hour, summarize, mean=mean(impressions)) output.filename <- paste(name, '-hour.png', sep='') png(filename=output.filename) ggplot(data=s, aes(x=hour, y=mean)) + geom_bar(stat="identity") + labs(title=paste('Impressions for', name), x='Local hour', y='Mean impressions') dev.off() # Plot tweet impressions by day of week t$dow <- strftime(t$ptime, "%a", tz="Europe/Athens") s <- ddply(t, ~dow, summarize, mean=mean(impressions)) output.filename <- paste(name, '-dow.png', sep='') png(filename=output.filename) ggplot(data=s, aes(x=dow, y=mean)) + geom_bar(stat="identity") + labs(title=paste('Impressions for', name), x='Day of week', y='Mean impressions') dev.off()