Révision 743
tmp/org.txm.ca.core/src/org/txm/ca/core/functions/CA.java (revision 743) | ||
---|---|---|
44 | 44 |
import org.txm.core.results.TXMParameters; |
45 | 45 |
import org.txm.lexicaltable.core.functions.LexicalTable; |
46 | 46 |
import org.txm.statsengine.core.StatException; |
47 |
import org.txm.utils.logger.Log; |
|
47 | 48 |
|
48 | 49 |
/** |
49 | 50 |
* Correspondence Analysis of a lexical table. |
... | ... | |
72 | 73 |
String[] coltitles; // of the colinfo table |
73 | 74 |
|
74 | 75 |
String pattern = "(cos2|contrib) (([0-9]+\\.[0-9]+)|([0-9]+))"; |
75 |
|
|
76 |
|
|
76 | 77 |
/** The rownames. */ |
77 | 78 |
String[] rownames = null; |
78 | 79 |
|
... | ... | |
85 | 86 |
/** The use Factomine R: change this only if you want to use the default R CA package. */ |
86 | 87 |
boolean useFactoMineR = true; |
87 | 88 |
|
88 |
|
|
89 |
|
|
90 |
|
|
89 |
|
|
90 |
|
|
91 |
|
|
91 | 92 |
/** |
92 | 93 |
* First dimension. |
93 | 94 |
*/ |
... | ... | |
99 | 100 |
*/ |
100 | 101 |
@Parameter(key=CAPreferences.SECOND_DIMENSION, type=Parameter.RENDERING) |
101 | 102 |
protected int secondDimension = 2; |
102 |
|
|
103 |
|
|
103 | 104 |
/** |
104 | 105 |
* To show/hide individuals. |
105 | 106 |
*/ |
... | ... | |
117 | 118 |
*/ |
118 | 119 |
@Parameter(key=CAPreferences.SHOW_POINT_SHAPES, type=Parameter.RENDERING) |
119 | 120 |
protected boolean showPointShapes; |
120 |
|
|
121 |
|
|
122 |
|
|
123 |
|
|
121 |
|
|
122 |
|
|
123 |
|
|
124 |
|
|
124 | 125 |
/** |
125 | 126 |
* Creates a new empty CA. |
126 | 127 |
* |
... | ... | |
138 | 139 |
|
139 | 140 |
@Override |
140 | 141 |
protected boolean _compute() throws Exception { |
141 |
|
|
142 |
if (this.useFactoMineR) { |
|
143 |
this.r_ca = new FactoMineRCA(this.getLexicalTable().getData()); |
|
142 |
try { |
|
143 |
if (this.useFactoMineR) { |
|
144 |
this.r_ca = new FactoMineRCA(this.getLexicalTable().getData()); |
|
145 |
} |
|
146 |
else { |
|
147 |
this.r_ca = new org.txm.ca.core.statsengine.r.functions.CA(this.getLexicalTable().getData()); |
|
148 |
} |
|
149 |
|
|
150 |
this.r_ca.compute(); |
|
151 |
|
|
152 |
// in case the lexical table changes |
|
153 |
this.getColNames(); |
|
154 |
// in case the lexical table changes |
|
155 |
this.getRowNames(); |
|
156 |
|
|
157 |
return true; |
|
158 |
} catch(Exception e) { |
|
159 |
System.out.println("Error: CA not computed: "+e); |
|
160 |
Log.printStackTrace(e); |
|
161 |
return false; |
|
144 | 162 |
} |
145 |
else { |
|
146 |
this.r_ca = new org.txm.ca.core.statsengine.r.functions.CA(this.getLexicalTable().getData()); |
|
147 |
} |
|
148 |
|
|
149 |
this.r_ca.compute(); |
|
150 |
|
|
151 |
// in case the lexical table changes |
|
152 |
this.getColNames(); |
|
153 |
// in case the lexical table changes |
|
154 |
this.getRowNames(); |
|
155 |
|
|
156 |
return true; |
|
157 | 163 |
|
158 | 164 |
} |
159 | 165 |
|
... | ... | |
165 | 171 |
else { |
166 | 172 |
System.out.println("Columns filter malformed follow this pattern " + pattern); |
167 | 173 |
} |
168 |
|
|
174 |
|
|
169 | 175 |
if (row.matches(pattern)) { |
170 | 176 |
this.rowfilter = row; |
171 | 177 |
} |
... | ... | |
637 | 643 |
return this.r_ca.getRowsMass(); |
638 | 644 |
} |
639 | 645 |
|
640 |
// /** |
|
641 |
// * step 1. |
|
642 |
// * |
|
643 |
// * @throws StatException the stat exception |
|
644 |
// * @throws CqiClientException the cqi client exception |
|
645 |
// */ |
|
646 |
// public boolean stepLexicalTable() throws Exception |
|
647 |
// { |
|
648 |
// table = LexicalTableFactory.getLexicalTable(partition, pAnalysisProperty, fmin); |
|
649 |
// if (table == null) { |
|
650 |
// System.out.println("Error: Lexical table is null."); |
|
651 |
// return false; |
|
652 |
// } |
|
653 |
// partition.addResult(table); |
|
654 |
// table.addResult(this); |
|
655 |
// |
|
656 |
// return true; |
|
657 |
// } |
|
646 |
// /**
|
|
647 |
// * step 1.
|
|
648 |
// *
|
|
649 |
// * @throws StatException the stat exception
|
|
650 |
// * @throws CqiClientException the cqi client exception
|
|
651 |
// */
|
|
652 |
// public boolean stepLexicalTable() throws Exception
|
|
653 |
// {
|
|
654 |
// table = LexicalTableFactory.getLexicalTable(partition, pAnalysisProperty, fmin);
|
|
655 |
// if (table == null) {
|
|
656 |
// System.out.println("Error: Lexical table is null.");
|
|
657 |
// return false;
|
|
658 |
// }
|
|
659 |
// partition.addResult(table);
|
|
660 |
// table.addResult(this);
|
|
661 |
//
|
|
662 |
// return true;
|
|
663 |
// }
|
|
658 | 664 |
|
659 |
// /** |
|
660 |
// * step 2. |
|
661 |
// */ |
|
662 |
// public boolean stepSortTableLexical() |
|
663 |
// { |
|
664 |
// try { |
|
665 |
// table.getData().filter(vmax, fmin); |
|
666 |
// } catch (Exception e) { |
|
667 |
// System.out.println("Error: "+e.getLocalizedMessage()); |
|
668 |
// org.txm.utils.logger.Log.printStackTrace(e); |
|
669 |
// return false; |
|
670 |
// } |
|
671 |
// return true; |
|
672 |
// } |
|
665 |
// /**
|
|
666 |
// * step 2.
|
|
667 |
// */
|
|
668 |
// public boolean stepSortTableLexical()
|
|
669 |
// {
|
|
670 |
// try {
|
|
671 |
// table.getData().filter(vmax, fmin);
|
|
672 |
// } catch (Exception e) {
|
|
673 |
// System.out.println("Error: "+e.getLocalizedMessage());
|
|
674 |
// org.txm.utils.logger.Log.printStackTrace(e);
|
|
675 |
// return false;
|
|
676 |
// }
|
|
677 |
// return true;
|
|
678 |
// }
|
|
673 | 679 |
|
674 | 680 |
/** |
675 | 681 |
* Gets the second dimension. |
... | ... | |
695 | 701 |
} |
696 | 702 |
|
697 | 703 |
|
698 |
|
|
704 |
|
|
699 | 705 |
/** |
700 | 706 |
* Get the singular values as array. |
701 | 707 |
* |
... | ... | |
786 | 792 |
return sum; |
787 | 793 |
} |
788 | 794 |
|
789 |
|
|
795 |
|
|
790 | 796 |
/** |
791 | 797 |
* Exports CA R data to a file |
792 | 798 |
* |
... | ... | |
819 | 825 |
return rez; |
820 | 826 |
} |
821 | 827 |
|
822 |
|
|
828 |
|
|
823 | 829 |
/** |
824 | 830 |
* Checks if the CA uses the FactoMineR R package. |
825 | 831 |
* @return <code>true</code> if the CA uses the FactoMineR R package otherwise <code>false</code> |
... | ... | |
838 | 844 |
&& this.firstDimension != this.secondDimension |
839 | 845 |
; |
840 | 846 |
} |
841 |
|
|
847 |
|
|
842 | 848 |
@Override |
843 | 849 |
public boolean saveParameters() { |
844 | 850 |
// nothing to do |
Formats disponibles : Unified diff