package com.imsl.test.example.stat; import com.imsl.stat.*; import java.text.*; /** *

* Merges two time series using different merging rules.

*

* This example illustrates the action of the merge function under different * settings of the merging rule.

* * @see Code * @see Output */ public class TimeSeriesOperationsEx1 { public static void main(String args[]) throws ParseException { SimpleDateFormat dateFormat = new SimpleDateFormat("M/d/y"); TimeSeries ts1 = new TimeSeries(); TimeSeries ts2 = new TimeSeries(); /* Create dates in different increments */ ts1.setStartDate(dateFormat.parse("12/12/2010")); ts1.setDateIncrement(3); ts2.setStartDate(dateFormat.parse("12/12/2010")); ts2.setDateIncrement(5); int n = 10; double y1[] = new double[n]; double y2[] = new double[n]; /* Create series values */ for (int i = 0; i < n; i++) { y1[i] = (i + 1.0); y2[i] = -(i + 1.0); } ts1.setSeriesValues(y1); ts2.setSeriesValues(y2); double[][] values1 = ts1.getSeriesValues(); double[][] values2 = ts2.getSeriesValues(); System.out.println("Time series 1 \t \tTime series 2"); for (int i = 0; i < n; i++) { System.out.println(dateFormat.format(ts1.getDates()[i]) + "\t" + values1[i][0] + "\t" + dateFormat.format(ts2.getDates()[i]) + "\t" + values2[i][0]); } TimeSeriesOperations tsOps = new TimeSeriesOperations(); TimeSeries ts3 = tsOps.merge(ts1, ts2); double[][] values3 = ts3.getSeriesValues(); System.out.println("Merge result using the union (default) merge rule: "); System.out.println("Series length: " + ts3.getLength()); for (int i = 0; i < ts3.getLength(); i++) { System.out.println(dateFormat.format(ts3.getDates()[i]) + "\t" + values3[i][0]); } tsOps.setMergeRule(TimeSeriesOperations.MergeRule.INTERSECTION); ts3 = tsOps.merge(ts1, ts2); values3 = ts3.getSeriesValues(); System.out.println("Merge results using the intersection merge rule: "); System.out.println("Series length: " + ts3.getLength()); for (int i = 0; i < ts3.getLength(); i++) { System.out.println(dateFormat.format(ts3.getDates()[i]) + "\t" + values3[i][0]); } tsOps.setMergeRule(TimeSeriesOperations.MergeRule.UNION_MISSING); ts3 = tsOps.merge(ts1, ts2); values3 = ts3.getSeriesValues(); System.out.println("Merge results using the union with missing rule: "); System.out.println("Series length: " + ts3.getLength()); System.out.println("Number of missing values: " + ts3.getNumMissing()); for (int i = 0; i < ts3.getLength(); i++) { System.out.println(dateFormat.format(ts3.getDates()[i]) + "\t" + values3[i][0]); } } }