Tutorials Code: Source Code for Tutorial 2

From DSL

Jump to: navigation, search
  #include <iostream>
  #include "smile.h"
  #include "smilearn.h"
  
  using namespace std;
  
  void PrintDataset(const DSL_dataset &d)
  {
  // The code below shows how to access crucial information form
  // a data set. 
  int v,r;
  cout << " ===================" << endl;
  cout << " -- variable info --" << endl;
  cout << "number of variables = " << d.NumVariables() << endl;
  for (v=0;v<d.NumVariables();v++)
  {
  DSL_variableInfo vi;
  d.GetVariableInfo(v,vi);
  cout << " Variable " << v << endl;
  cout << "\tid: " << vi.id << endl; 
  cout << "\t"; 
  if (vi.useInt) 
  cout << "is discrete";
  else
  cout << "is continuous";
  cout << endl;
  cout << "\tMissing element value: ";
  if (vi.useInt)
  {
  cout << vi.missingValue.i << endl;
  cout << "\tState names: ";
  for (unsigned s=0;s<vi.stateNames.size();s++)
  cout << vi.stateNames[s] << " ";
  cout << endl;
  }
  else
  cout << vi.missingValue.f << endl;
  }
  
  cout << " -- data records --" << endl;
  cout << "number of records = " << d.NumRecords() << endl;
  for (r=0;r<d.NumRecords();r++)
  {
  for (v=0;v<d.NumVariables();v++)
  {
  if (d.IsMissing(v,r))
  cout << "*";
  else
  {
  if (d.IsDiscrete(v))
  cout << d.At(v,r).i;
  else
  cout << d.At(v,r).f;
  }
  cout << "\t" ;
  }
  cout << endl;
  }
  cout << endl;
  }
  
  
  void SimpleTextParsing()
  {
  DSL_textParser parser;
  parser.SetUseHeader(true);
  parser.SetTypesSpecified(true);
  
  if (parser.Parse("data.txt")!=DSL_OKAY)
  cout << "Parsing failed!" << endl;
  
  DSL_dataset d = parser.GetDataset();
  PrintDataset(d);
  }
  
  
  int main()
  {
  SimpleTextParsing();
  }
  
  
  /*
  ------- data.txt -------
  A B C D E
  ordinal discrete ordinal discrete continuous
  0 0 0 true 1.1
  1 0 1 false 2.1
  * * 0 true 0.1 
  1 1 1 *  3
  ------- -------- -------
  ===================
  -- variable info --
  number of variables = 5
  Variable 0
  id: Column_0
  is continuous
  Missing element value: -1.#IND
  Variable 1
  id: Column_1
  is discrete
  Missing element value: -1
  State names: 0 1
  Variable 2
  id: Column_2
  is continuous
  Missing element value: -1.#IND
  Variable 3
  id: Column_3
  is discrete
  Missing element value: -1
  State names: d1 d2
  Variable 4
  id: Column_4
  is continuous
  Missing element value: -1.#IND
  -- data records --
  number of records = 4
  0       0       0       0       1.1
  1       0       1       1       2.1
  *       *       0       0       0.1
  1       1       1       *       3
  */
Personal tools