Add conditionsOverTime to simple examples
Change-Id: I580751de8a248c70183ec26f0b6e0b3f3ce78952
diff --git a/examples/simple/conditionsOverTime.R b/examples/simple/conditionsOverTime.R
new file mode 100644
index 0000000..12083d9
--- /dev/null
+++ b/examples/simple/conditionsOverTime.R
@@ -0,0 +1,38 @@
+#!/usr/bin/env Rscript
+#
+# Plot frequency of an expressions under multiple conditions over time
+#
+#library(devtools)
+#install_git("https://korap.ids-mannheim.de/gerrit/KorAP/RKorAPClient", upgrade="never")
+library(RKorAPClient)
+library(ggplot2)
+library(reshape2)
+#library(plotly)
+
+conditionsOverTime <- function(query, conditions, years, kco = new("KorAPConnection", verbose = TRUE)) {
+ df = data.frame(year=years)
+ for (c in conditions) {
+ df[c] <- sapply(df$year, function(y)
+ corpusQuery(kco, query, vc=paste(c, "& pubDate in", y))@totalResults)
+
+ }
+ df <- melt(df, measure.vars = conditions, value.name = "afreq", variable.name = "condition")
+ df$total <- apply(df[,c('year','condition')], 1, function(x) corpusStats(kco, vc=paste(x[2], "& pubDate in", x[1]))@tokens )
+ df$ci <- t(sapply(Map(prop.test, df$afreq, df$total), "[[","conf.int"))
+ df$freq <- df$afreq / df$total
+ g <- ggplot(data = df, mapping = aes(x = year, y = freq, fill=condition, color=condition)) +
+ geom_point() +
+ geom_line() +
+ geom_ribbon(aes(ymin=ci[, 1], ymax=ci[, 2], fill=condition, color=condition), alpha=.3, linetype=0) +
+ xlab("TIME") +
+ labs(color="Virtual Corpus", fill="Virtual Corpus") +
+ ylab(sprintf("Observed frequency of “%s”", query)) +
+ theme(axis.text.x = element_text(angle = 45, hjust = 1)) + scale_x_continuous(breaks=unique(df$year))
+ print(g)
+ # print(ggplotly(g, tooltip = c("x", "y")))
+
+ df
+}
+
+df <- conditionsOverTime("[tt/l=Heuschrecke]", c("textClass = /natur.*/", "textClass=/politik.*/", "textClass=/wirtschaft.*/"), (2002:2018))
+#df <- conditionsOverTime("wegen dem [tt/p=NN]", c("textClass = /sport.*/", "textClass=/politik.*/", "textClass=/kultur.*/"), (1995:2005))