r code and data to generate bar graphs
[noahs_yelp_analysis] / analysis.R
1 cat("\n","Enter textfile name","\n") # prompt
2 y<-readLines(n=1) 
3 x <- paste("lord-hobo-cambridge.txt",sep="")
4 d <- read.csv(x)[,c(1,2,3)]
5
6 colnames(d) <- c("rating", "day.of.week", "day.in.review")
7 d$day.in.review <- d$day.in.review == "True"
8
9 d$day.of.week <- as.character(d$day.of.week) 
10 d$day.of.week[d$day.of.week == "0"] <- "Sunday"
11 d$day.of.week[d$day.of.week == "1"] <- "Monday"
12 d$day.of.week[d$day.of.week == "2"] <- "Tuesday"
13 d$day.of.week[d$day.of.week == "3"] <- "Wednesday"
14 d$day.of.week[d$day.of.week == "4"] <- "Thursday"
15 d$day.of.week[d$day.of.week == "5"] <- "Friday"
16 d$day.of.week[d$day.of.week == "6"] <- "Saturday"
17 d$day.of.week <- factor(d$day.of.week, levels = c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"))
18
19 d$day.of.week <- as.factor(d$day.of.week) 
20
21 t <- table(d$day.of.week, as.factor(d$rating))
22 t2 <- prop.table(t,2)
23 chisq.test(d$day.of.week, as.factor(d$rating))
24
25 # draw a graph
26 library(ggplot2)
27 v <- paste(y,"-baaaarplot.png",sep="")
28 png(v, width=8, height=6, unit="in", res=200)
29 p <- qplot(day.of.week, data=d, fill=as.factor(rating), main=y)
30 #p <- qplot(levels(d$day.of.week),as.factor(names(d$rating)), t, data=data.frame(t,levels(d$day.of.week)))
31 p <- p + scale_x_discrete("Day of Week") + scale_y_continuous("yelp # star review") + scale_fill_discrete("") 
32 print(p)
33 dev.off()
34
35
36

Benjamin Mako Hill || Want to submit a patch?