How to iterate over all the attributes in an ExampleSet
radone
New Altair Community Member
How can I iterate over all attributes in an ExampleSet, including special attributes and label?
This code will print only the thirth attribute (which was not made to be special). How can I print also values of the special attributes?
Thanks in advance.
Radim
With the setSpecial() method I want to mark these attributes to be not used for training.
public class AttributeTest {
public static void main(String[] args) {
// construct attribute set
Attribute[] attributes = new Attribute[3];
attributes[0] = AttributeFactory.createAttribute(
"FileName", Ontology.STRING);
attributes[1] = AttributeFactory.createAttribute(
"Xposition", Ontology.INTEGER);
attributes[2] = AttributeFactory.createAttribute(
"Yposition", Ontology.INTEGER);
MemoryExampleTable table = new MemoryExampleTable(attributes);
char decimalSeperator = '.';
DataRowFactory ROW_FACTORY = new DataRowFactory(0, decimalSeperator);
String[] strings = new String[3];
strings[0] = "FILE";
strings[1] = Integer.toString(11);
strings[2] = Integer.toString(22);
// make and add row
DataRow row = ROW_FACTORY.create(strings, attributes);
table.addDataRow(row);
ExampleSet es = table.createExampleSet();
es.getAttributes().setSpecialAttribute(attributes[0],
"IGNORED1");
es.getAttributes().setSpecialAttribute(attributes[1],
"IGNORED2");
for (Attribute a : es.getAttributes()) {
System.out.println(a.getName());
}
System.out.println(es.getAttributes().getSpecial("clusterFNATT"));
}
}
This code will print only the thirth attribute (which was not made to be special). How can I print also values of the special attributes?
Thanks in advance.
Radim
0
Answers
-
Hi,
exampleSet.getAttributes().allAttributes();
returns the iterator you are looking for,
Cheers,
Simon
0 -
Thank you again Simon.
For anyone dealing with the problem, let me summarize the content of this thread:
To iterate only over regular attributes:for (Attribute a : ef.getAttributes().allAttributes()) {
To iterate over all attributes (including special attributes, label, etc.):
Example e = ef.getExample(0);
values = e.getValueAsString(a);
i++;
}Iterator<Attribute> it = ef.getAttributes().allAttributes();
where ef is of type ExampleSet.
while(it.hasNext()) {
Example e = ef.getExample(0);
values = e.getValueAsString(it.next());
i++;
}0