Write out column headings for Write Special Format operator

text_miner
text_miner New Altair Community Member
edited November 5 in Community Q&A
Hi,

I'm trying to write out an ExampleSet as a tab-delimited file.  I'm using the Write Special Format operator so that I can specify the order in which the attributes are written (column order).  While I can write out the data just fine, I'm not sure how to also add column names to the output file.  An example of what I want the output to look like is shown below along with a sample process that illustrates my problems.

Any help would be appreciate. Thanks!

Output desired:
[tt]
ID    Att1    Att2    Label
1      1.2      1.4      True
2      2.3      3.2      False
...
[/tt]



Sample Process:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.0">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" expanded="true" name="Process">
    <process expanded="true" height="952" width="900">
      <operator activated="true" class="generate_data" expanded="true" height="60" name="Generate Data" width="90" x="45" y="30">
        <parameter key="number_of_attributes" value="2"/>
      </operator>
      <operator activated="true" class="generate_id" expanded="true" height="76" name="Generate ID" width="90" x="179" y="30"/>
      <operator activated="true" class="write_special" expanded="true" height="60" name="Write Special Format" width="90" x="313" y="30">
        <parameter key="example_set_file" value="C:\TEMP\temp.dat"/>
        <parameter key="special_format" value="$i$t$v[att1]$t$v[att2]$t$l"/>
      </operator>
      <connect from_op="Generate Data" from_port="output" to_op="Generate ID" to_port="example set input"/>
      <connect from_op="Generate ID" from_port="example set output" to_op="Write Special Format" to_port="input"/>
      <connect from_op="Write Special Format" from_port="through" to_port="result 1"/>
      <portSpacing port="source_input 1" spacing="0"/>
      <portSpacing port="sink_result 1" spacing="0"/>
      <portSpacing port="sink_result 2" spacing="0"/>
    </process>
  </operator>
</process>
Tagged:

Answers

  • dragoljub
    dragoljub New Altair Community Member
    I also think this would be a very useful option in the write special operator. I have been copy and pasting the header row from the original file to get around this problem.

    -Gagi
  • land
    land New Altair Community Member
    Hi folks,
    wouldn't it be a solution to transpose the example set and write out the first attribute containing the attribute names without ending with replacing the example separating newline character with a tab?
    Then append the data by selecting the corresponding overwrite mode.

    Anyway, you might add this as an feature request to the bugtracker.

    Greetings,
      Sebastian