[chronojump] web server: improved evaluators.R, new tf_by_age.R



commit 2b8bccaee1db0fa65bcf4590019ab0e07df5f9a7
Author: Xavier de Blas <xaviblas gmail com>
Date:   Tue Jul 26 19:09:40 2011 +0200

    web server: improved evaluators.R, new tf_by_age.R

 chronojump_server/r-sqlite/evaluators.R     |   59 +++++++++++++++++++-------
 chronojump_server/r-sqlite/evaluators_old.R |   35 +++++++++++++++
 chronojump_server/r-sqlite/tf_by_age.R      |   60 +++++++++++++++++++++++++++
 3 files changed, 139 insertions(+), 15 deletions(-)
---
diff --git a/chronojump_server/r-sqlite/evaluators.R b/chronojump_server/r-sqlite/evaluators.R
index 984d26a..e0f5e29 100644
--- a/chronojump_server/r-sqlite/evaluators.R
+++ b/chronojump_server/r-sqlite/evaluators.R
@@ -5,30 +5,59 @@ drv = dbDriver("SQLite")
 file = "/root/.local/share/Chronojump/database/chronojump_server.db"
 con = dbConnect(drv, file)
 
+persons <- dbGetQuery(con, "SELECT COUNT(DISTINCT(person77.uniqueID)) AS conta, SEvaluator.name AS names FROM person77, SEvaluator, session, personSession77 WHERE person77.uniqueID=personSession77.personID AND session.uniqueID=personSession77.sessionID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name DESC;")
+
 jumps <- dbGetQuery(con, "SELECT COUNT(jump.uniqueID) AS conta, SEvaluator.name AS names FROM jump, SEvaluator, session WHERE jump.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
 
 jumpsRj <- dbGetQuery(con, "SELECT COUNT(jumpRj.uniqueID) AS conta, SEvaluator.name AS names FROM jumpRj, SEvaluator, session WHERE jumpRj.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY conta DESC;")
 
-persons <- dbGetQuery(con, "SELECT COUNT(DISTINCT(person77.uniqueID)) AS conta, SEvaluator.name AS names FROM person77, SEvaluator, session, personSession77 WHERE person77.uniqueID=personSession77.personID AND session.uniqueID=personSession77.sessionID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
+runs <- dbGetQuery(con, "SELECT COUNT(run.uniqueID) AS conta, SEvaluator.name AS names FROM run, SEvaluator, session WHERE run.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
+
+runsInterval <- dbGetQuery(con, "SELECT COUNT(runInterval.uniqueID) AS conta, SEvaluator.name AS names FROM runInterval, SEvaluator, session WHERE runInterval.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
+
+reactionTimes <- dbGetQuery(con, "SELECT COUNT(reactiontime.uniqueID) AS conta, SEvaluator.name AS names FROM reactiontime, SEvaluator, session WHERE reactiontime.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
+
+pulses <- dbGetQuery(con, "SELECT COUNT(pulse.uniqueID) AS conta, SEvaluator.name AS names FROM pulse, SEvaluator, session WHERE pulse.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
+
+multichronopic <- dbGetQuery(con, "SELECT COUNT(multichronopic.uniqueID) AS conta, SEvaluator.name AS names FROM multichronopic, SEvaluator, session WHERE multichronopic.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
 
-def.par <- par(no.readonly = TRUE) # save default, for resetting...
-par(new=FALSE, oma=c(1,1,4,1))
-nf <- layout(matrix(c(1,2,3), 3, 1, byrow=TRUE), heights=c(11,10,7), respect=FALSE)
-#par(mfcol=c(3,1))
+par(oma=c(1,6,1,1))
 
-personsOrdered = persons[order(persons$conta),]
-jumpsOrdered = jumps[order(jumps$conta),]
-jumpsRjOrdered = jumpsRj[order(jumpsRj$conta),]
+a <- merge(persons, jumps, by="names", all.x=T)
+colnames(a)=c("names", "persons", "jumps")
+a <- merge(a, jumpsRj, by="names", all.x=T)
+colnames(a)=c("names", "persons", "jumps", "jumps_reactive")
+a <- merge(a, runs, by="names", all.x=T)
+colnames(a)=c("names", "persons", "jumps", "jumps_reactive", "runs")
+a <- merge(a, runsInterval, by="names", all.x=T)
+colnames(a)=c("names", "persons", "jumps", "jumps_reactive", "runs", "runs_intervallic")
+a <- merge(a, reactionTimes, by="names", all.x=T)
+colnames(a)=c("names", "persons", "jumps", "jumps_reactive", "runs", "runs_intervallic", "reaction_times")
+a <- merge(a, pulses, by="names", all.x=T)
+colnames(a)=c("names", "persons", "jumps", "jumps_reactive", "runs", "runs_intervallic", "reaction_times", "pulses")
+a <- merge(a, multichronopic, by="names", all.x=T)
+colnames(a)=c("names", "persons", "jumps", "jumps_reactive", "runs", "runs_intervallic", "reaction_times", "pulses", "multichronopic")
 
-cex=.7
-dotchart(personsOrdered$conta, labels=personsOrdered$names, main=paste("Persons"," [",sum(persons$conta),"]"), cex=cex)
-dotchart(jumpsOrdered$conta, labels=jumpsOrdered$names, main=paste("Jumps (simple)"," [",sum(jumps$conta),"]"), cex=cex)
-dotchart(jumpsRjOrdered$conta, labels=jumpsRjOrdered$names, main=paste("Jumps (reactive)"," [",sum(jumpsRj$conta),"]"), cex=cex)
+#prepare sort
+a <- replace(a,is.na(a),0)
+#fix columns with all "" because there's no data
+a$runs <- as.numeric(a$runs)
+a$multichronopic <- as.numeric(a$multichronopic)
+#fix duplicates:
+a[(a$names == "Josep M. PadullÃs"),2:9] = a[(a$names == "Josep M. PadullÃs"),2:9] + a[(a$names == "Josep M PadullÃs"),2:9]
+a <- subset(a,a$names != "Josep M PadullÃs")
+a[(a$names == "Jeffrey Pagaduan"),2:9] = a[(a$names == "Jeffrey Pagaduan"),2:9] + a[(a$names == "Jeffrey C. Pagaduan"),2:9]
+a <- subset(a,a$names != "Jeffrey C. Pagaduan")
+#sort
+a <- a[order(a$persons + a$jumps + a$jumps_reactive + a$runs + a$runs_intervallic + a$reaction_times + a$pulses + a$multichronopic),]
 
+#prepare graph
+b=cbind(a$persons, a$jumps , a$jumps_reactive, a$runs, a$runs_intervallic, a$reaction_times, a$pulses, a$multichronopic)
+colnames(b)=c("persons", "jumps", "jumps_reactive", "runs", "runs_intervallic", "reaction_times", "pulses", "multichronopic")
+rownames(b)=a$names
 
-par(def.par)#- reset to default
-par(new=TRUE)
-plot(-1,type="n",axes=F,xlab='',ylab='')
+#graph
+barplot(t(b), horiz=T, las=2, col=rainbow(8), legend=colnames(b), args.legend=list(x = "bottomright", bg="White"))
 title(main="Data uploaded by evaluator",
   sub=paste(Sys.Date(),"(YYYY-MM-DD)"), cex.sub = 0.75, font.sub = 3, col.sub = "red")
 
diff --git a/chronojump_server/r-sqlite/evaluators_old.R b/chronojump_server/r-sqlite/evaluators_old.R
new file mode 100644
index 0000000..984d26a
--- /dev/null
+++ b/chronojump_server/r-sqlite/evaluators_old.R
@@ -0,0 +1,35 @@
+library(GDD)
+GDD(file="/var/www/web/server/images/evaluators.png", type="png", w=670, h=670)
+library(RSQLite)
+drv = dbDriver("SQLite")
+file = "/root/.local/share/Chronojump/database/chronojump_server.db"
+con = dbConnect(drv, file)
+
+jumps <- dbGetQuery(con, "SELECT COUNT(jump.uniqueID) AS conta, SEvaluator.name AS names FROM jump, SEvaluator, session WHERE jump.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
+
+jumpsRj <- dbGetQuery(con, "SELECT COUNT(jumpRj.uniqueID) AS conta, SEvaluator.name AS names FROM jumpRj, SEvaluator, session WHERE jumpRj.sessionID=session.uniqueID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY conta DESC;")
+
+persons <- dbGetQuery(con, "SELECT COUNT(DISTINCT(person77.uniqueID)) AS conta, SEvaluator.name AS names FROM person77, SEvaluator, session, personSession77 WHERE person77.uniqueID=personSession77.personID AND session.uniqueID=personSession77.sessionID AND session.evaluatorID=Sevaluator.uniqueID GROUP BY SEvaluator.name ORDER BY SEvaluator.name;")
+
+def.par <- par(no.readonly = TRUE) # save default, for resetting...
+par(new=FALSE, oma=c(1,1,4,1))
+nf <- layout(matrix(c(1,2,3), 3, 1, byrow=TRUE), heights=c(11,10,7), respect=FALSE)
+#par(mfcol=c(3,1))
+
+personsOrdered = persons[order(persons$conta),]
+jumpsOrdered = jumps[order(jumps$conta),]
+jumpsRjOrdered = jumpsRj[order(jumpsRj$conta),]
+
+cex=.7
+dotchart(personsOrdered$conta, labels=personsOrdered$names, main=paste("Persons"," [",sum(persons$conta),"]"), cex=cex)
+dotchart(jumpsOrdered$conta, labels=jumpsOrdered$names, main=paste("Jumps (simple)"," [",sum(jumps$conta),"]"), cex=cex)
+dotchart(jumpsRjOrdered$conta, labels=jumpsRjOrdered$names, main=paste("Jumps (reactive)"," [",sum(jumpsRj$conta),"]"), cex=cex)
+
+
+par(def.par)#- reset to default
+par(new=TRUE)
+plot(-1,type="n",axes=F,xlab='',ylab='')
+title(main="Data uploaded by evaluator",
+  sub=paste(Sys.Date(),"(YYYY-MM-DD)"), cex.sub = 0.75, font.sub = 3, col.sub = "red")
+
+dev.off()
diff --git a/chronojump_server/r-sqlite/tf_by_age.R b/chronojump_server/r-sqlite/tf_by_age.R
new file mode 100644
index 0000000..de4bc19
--- /dev/null
+++ b/chronojump_server/r-sqlite/tf_by_age.R
@@ -0,0 +1,60 @@
+library(GDD)
+GDD(file="/var/www/web/server/images/tf_by_age.png", type="png", w=670, h=670)
+
+library(RSQLite)
+drv = dbDriver("SQLite")
+file = "/root/.local/share/Chronojump/database/chronojump_server.db"
+con = dbConnect(drv, file)
+
+def.par <- par(no.readonly = TRUE) # save default, for resetting...
+
+
+dades <- dbGetQuery(con, "SELECT jump.tv AS TF, (strftime('%Y', session.date) - strftime('%Y', person77.dateborn)) - (strftime('%m-%d', session.date) < strftime('%m-%d', person77.dateborn)) AS years, jump.type AS type, person77.sex AS sex FROM jump, person77, personSession77, session WHERE jump.personID = person77.UniqueID AND personSession77.personID = person77.uniqueID AND personSession77.sessionID = session.UniqueID AND years>1")
+sjM <- subset(dades, dades$type=='SJ' & dades$sex == 'M')
+sjF <- subset(dades, dades$type=='SJ' & dades$sex == 'F')
+cmjM <- subset(dades, dades$type=='CMJ' & dades$sex == 'M')
+cmjF <- subset(dades, dades$type=='CMJ' & dades$sex == 'F')
+
+
+par(new=FALSE, oma=c(1,1,5,1))
+par(mfcol=c(2,2))
+
+
+a=sjM$TF
+b=sjM$years
+plot(a~b, main="SJ Man", xlab="Age (years)", ylab="Flight time (s)")
+abline(lm(a~b),col='red')
+stat=paste("Pearson=",round(cor(a,b),3)," RÂ=",round(cor(a,b)^2,3))
+mtext(stat, cex=.7)
+
+a=sjF$TF
+b=sjF$years
+plot(a~b, main="SJ Woman", xlab="Age (years)", ylab="Flight time (s)")
+abline(lm(a~b),col='red')
+stat=paste("Pearson=",round(cor(a,b),3)," RÂ=",round(cor(a,b)^2,3))
+mtext(stat, cex=.7)
+
+a=cmjM$TF
+b=cmjM$years
+plot(a~b, main="CMJ Man", xlab="Age (years)", ylab="Flight time (s)")
+abline(lm(a~b),col='red')
+stat=paste("Pearson=",round(cor(a,b),3)," RÂ=",round(cor(a,b)^2,3))
+mtext(stat, cex=.7)
+
+a=cmjF$TF
+b=cmjF$years
+plot(a~b, main="CMJ Woman", xlab="Age (years)", ylab="Flight time (s)")
+abline(lm(a~b),col='red')
+stat=paste("Pearson=",round(cor(a,b),3)," RÂ=",round(cor(a,b)^2,3))
+mtext(stat, cex=.7)
+
+
+par(def.par)#- reset to default
+
+par(new=TRUE)
+plot(-1,type="n",axes=F,xlab='',ylab='')
+title(main="Correlations between age and flight time",
+  sub=paste(Sys.Date(),"(YYYY-MM-DD)"), cex.sub = 0.75, font.sub = 3, col.sub = "red")
+
+dev.off()
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]