/** Performs the action of loading a session from a file. */ public void actionPerformed(ActionEvent e) { DataModel dataModel = getDataEditor().getSelectedDataModel(); if (dataModel instanceof DataSet) { DataSet dataSet = (DataSet) dataModel; DataFilter interpolator = new ModeInterpolator(); DataSet newDataSet = interpolator.filter(dataSet); DataModelList list = new DataModelList(); list.add(newDataSet); getDataEditor().reset(list); getDataEditor().selectFirstTab(); } else if (dataModel instanceof ICovarianceMatrix) { JOptionPane.showMessageDialog(JOptionUtils.centeringComp(), "Must be a tabular data set."); } }
private void createDiscreteTimeSeriesData() { // GIVEN: Continuous data set D, maximum lag m. Node[] dataVars = dataSet.getVariables().toArray(new Node[0]); int n = dataVars.length; int m = getNumLags(); // LetXi, i = 0,...,n-1, be the variables from the data. Let Xi(t) be // the variable Xi at time lag t (before 0), t = 0,...,m. Node[][] laggedVars = new Node[m + 1][n]; Knowledge knowledge = new Knowledge(); for (int s = 0; s <= m; s++) { for (int j = 0; j < n; j++) { String name1 = dataVars[j].getName(); String name2 = name1 + "." + (s + 1); laggedVars[s][j] = new DiscreteVariable((DiscreteVariable) dataVars[j]); laggedVars[s][j].setName(name2); laggedVars[s][j].setCenter(80 * j + 50, 80 * (m - s) + 50); knowledge.addToTier(s, laggedVars[s][j].getName()); } } // 2. Prepare the data the way you did. List<Node> variables = new LinkedList<Node>(); for (int s = 0; s <= m; s++) { for (int i = 0; i < n; i++) { int[] rawData = new int[dataSet.getNumRows()]; for (int j = 0; j < dataSet.getNumRows(); j++) { rawData[j] = dataSet.getInt(j, i); } int size = dataSet.getNumRows(); int[] laggedRaw = new int[size - m + 1]; System.arraycopy(rawData, m - s, laggedRaw, 0, size - m + 1); variables.add(laggedVars[s][i]); } } DataSet _laggedData = new ColtDataSet(dataSet.getNumRows() - m + 1, variables); for (int s = 0; s <= m; s++) { for (int i = 0; i < n; i++) { int[] rawData = new int[dataSet.getNumRows()]; for (int j = 0; j < dataSet.getNumRows(); j++) { rawData[j] = dataSet.getInt(j, i); } int size = dataSet.getNumRows(); int[] laggedRaw = new int[size - m + 1]; System.arraycopy(rawData, m - s, laggedRaw, 0, size - m + 1); int _col = _laggedData.getColumn(laggedVars[s][i]); for (int j = 0; j < dataSet.getNumRows(); j++) { _laggedData.setInt(j, _col, laggedRaw[j]); } } } knowledge.setDefaultToKnowledgeLayout(true); _laggedData.setKnowledge(knowledge); DataModelList list = new DataModelList(); list.add(_laggedData); getDataEditor().reset(list); getDataEditor().selectLastTab(); }