...
[iramuteq] / Rscripts / association.R
1 #author : Pierre Ratinaud
2 #copyright 1012 Pierre Ratinaud
3 #license : GNU GPL
4
5
6 in.table <- read.csv2('/home/pierre/workspace/iramuteq/corpus/association_suede.csv', header = FALSE, row.names=1)
7 source('/home/pierre/workspace/iramuteq/Rscripts/Rgraph.R')
8
9 verges.table <- function(x, freq.ts = 'mean', rank.ts = 'mean') {
10 #x matrice : eff, rank
11 #table.out : eff in rows, rank in columns
12 #            1|2
13 #            3|4
14     if (freq.ts == 'mean') {
15         freq.ts <- mean(x[,1])
16     }
17     if (rank.ts == 'mean') {
18         rank.ts <- mean(x[,2])
19     }
20
21     eff.cex=c(0.8,2)
22     rank.cex=NULL
23
24     if (!is.null(eff.cex)) x <- cbind(x,norm.eff=norm.vec(x[,1],eff.cex[1], eff.cex[2]))
25     
26     if (!is.null(rank.cex)) x <- cbind(x,norm.rank=norm.vec(x[,1],rank.cex[1], rank.cex[2]))
27
28     case.1 <- x[which(x[,1] >= freq.ts & x[,2] <= rank.ts),]
29     case.2 <- x[which(x[,1] >= freq.ts & x[,2] > rank.ts),]
30     case.3 <- x[which(x[,1] < freq.ts & x[,2] <= rank.ts),]
31     case.4 <- x[which(x[,1] < freq.ts & x[,2] > rank.ts),]
32
33     ylims <- max(c(nrow(case.1), nrow(case.2), nrow(case.3) ,nrow(case.4)))
34     
35
36     plot.case <- function(case) {
37         txt <- rownames(case)
38         if (ncol(case) == 3) lab.cex <- case[,3]
39         else lab.cex=1
40         plot(rep(1,length(txt)),1:length(txt),pch='',axes=FALSE, xlab='', ylab='', ylim = c(0,ylims))
41         ys <- ylims - length(txt)
42         ys <- (length(txt):1) + ys
43         text(1,ys,txt, xlab=NULL, ylab=NULL, cex=lab.cex)
44     }
45
46     boxcolor = 'green'
47     par(mfcol=c(2,2))
48     par(mar=c(1,1,1,1))
49     par(oma=c(3,3,3,3))
50     plot.case(case.1)
51     box("figure", col=boxcolor)
52     plot.case(case.3)
53     box("figure", col=boxcolor)
54     plot.case(case.2)
55     box("figure", col=boxcolor)
56     plot.case(case.4)
57     box("figure", col=boxcolor)
58
59     mtext("rangs <= | rangs >", side=3, line=1, cex=1, col="blue", outer=TRUE)   
60     mtext("fréquences < | fréquences >=", side=2, line=2, cex=1, col="blue", outer=TRUE)  
61     box("outer", col="blue") 
62 }
63
64
65