In the example below the nzJoin() function is just to create a view with join over two tables (surveys and events). Some examples for function nzTable() are presented in both textual and graphical form.
> library(nza)
> library(ca)
> nzConnect("user ","password","10.1.1.74","interface")
> # pointers to three tables in databse
> nzUsers = nz.data.frame("users")
> nzSurvey = nz.data.frame("surveys")
> nzEvents = nz.data.frame("events")
> # create a join of two tables
> ussu <- nzJoin(nzSurvey, nzEvents, nzSurvey[,1] == nzEvents[,1])
> # build a contingency table for joined tables
> # the relation between skills and used elements
> tmp2 = nzTable(q8~item, ussu,T)$mat
> catmp2 = ca(tmp2)
> catmp2$rownames[catmp2$rowdist<0.3] = ""
> # visualization of the relation between skills and used elements
> plot(catmp2, labels=c(2,2), arrow=c(F,T), mass=c(T,T))
> # absolute number of used UI elements
> tab1 = nzTable(category~item, nzEvents)
> ttt = as.data.frame(tab1$tab)
> # which group of UI elements are touched most often
> dotchart(ttt[,3], col=rainbow(14)[as.numeric(ttt[,1])], cex=1.1, pch=19, + main="number of interactions with given UI element")
> legend("topleft",levels(ttt[,1]), col=rainbow(14)[seq_along(unique(ttt[,1]))], + bg="white", pch=19, title="category")
In the first figure we see, that more advanced users often use following US elements: new window/new tab button, also start private browsing, inspect, page setup and web console features. These elements are hardly used by users with lower skills.

