Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## weka.core
Class Attribute

    java.lang.Object
      weka.core.Attribute

All Implemented Interfaces:
  java.io.Serializable, Copyable

    public class Attribute

extends java.lang.Object
implements Copyable, java.io.Serializable

Class for handling an attribute. Once an attribute has been created, it can't be changed.

The following attribute types are supported:

- numeric:
  This type of attribute represents a floating-point number.
- nominal:
  This type of attribute represents a fixed set of nominal values.
- string:
  This type of attribute represents a dynamically expanding set of nominal values. Usually used in text classification.
- date:
  This type of attribute represents a date, internally represented as floating-point number storing the milliseconds since January 1, 1970, 00:00:00 GMT. The string representation of the date must be ISO-8601 compliant, the default is `yyyy-MM-dd'T'HH:mm:ss`.

Typical usage (code from the main() method of this class):

`...
// Create numeric attributes "length" and "weight"
Attribute length = new Attribute("length");
Attribute weight = new Attribute("weight");
// Create vector to hold nominal values "first", "second", "third"
FastVector my_nominal_values = new FastVector(3);
my_nominal_values.addElement("first");
my_nominal_values.addElement("second");
my_nominal_values.addElement("third");
// Create nominal attribute "position"
Attribute position = new Attribute("position", my_nominal_values);
...
`

Version:
  $Revision: 1.32.2.3 $
Author:
  Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  Serialized Form

Field Summary
`static int` | `DATE` Constant set for attributes with date values.
`static int` | `NOMINAL` Constant set for nominal attributes.
`static int` | `NUMERIC` Constant set for numeric attributes.
`static int` | `ORDERING_MODULO` Constant set for modulo-ordered attributes.
`static int` | `ORDERING_ORDERED` Constant set for ordered attributes.
`static int` | `ORDERING_SYMBOLIC` Constant set for symbolic attributes.
`static int` | `STRING` Constant set for attributes with string values.

Constructor Summary
`Attribute(java.lang.String attributeName)` Constructor for a numeric attribute.
`Attribute(java.lang.String attributeName, FastVector attributeValues)` Constructor for nominal attributes and string attributes.
`Attribute(java.lang.String attributeName, FastVector attributeValues, ProtectedProperties metadata)` Constructor for nominal attributes and string attributes, where metadata is supplied.
`Attribute(java.lang.String attributeName, ProtectedProperties metadata)` Constructor for a numeric attribute, where metadata is supplied.
`Attribute(java.lang.String attributeName, java.lang.String dateFormat)` Constructor for a date attribute.
`Attribute(java.lang.String attributeName, java.lang.String dateFormat, ProtectedProperties metadata)` Constructor for a date attribute, where metadata is supplied.

Method Summary
`int` | `addStringValue(Attribute src, int index)` Adds a string value to the list of valid strings for attributes of type STRING and returns the index of the string.
`int` | `addStringValue(java.lang.String value)` Adds a string value to the list of valid strings for attributes of type STRING and returns the index of the string.
`java.lang.Object` | `copy()` Produces a shallow copy of this attribute.
`java.util.Enumeration` | `enumerateValues()` Returns an enumeration of all the attribute's values if the attribute is nominal or a string, null otherwise.
`boolean` | `equals(java.lang.Object other)` Tests if given attribute is equal to this attribute.
`java.lang.String` | `formatDate(double date)`
`double` | `getLowerNumericBound()` Returns the lower bound of a numeric attribute.
`ProtectedProperties` | `getMetadata()` Returns the properties supplied for this attribute.
`double` | `getUpperNumericBound()` Returns the upper bound of a numeric attribute.
`boolean` | `hasZeropoint()` Returns whether the attribute has a zeropoint and may be added meaningfully.
`int` | `index()` Returns the index of this attribute.
`int` | `indexOfValue(java.lang.String value)` Returns the index of a given attribute value.
`boolean` | `isAveragable()` Returns whether the attribute can be averaged meaningfully.
`boolean` | `isDate()` Tests if the attribute is a date type.
`boolean` | `isInRange(double value)` Determines whether a value lies within the bounds of the attribute.
`boolean` | `isNominal()` Test if the attribute is nominal.
`boolean` | `isNumeric()` Tests if the attribute is numeric.
`boolean` | `isRegular()` Returns whether the attribute values are equally spaced.
`boolean` | `isString()` Tests if the attribute is a string.
`boolean` | `lowerNumericBoundIsOpen()` Returns whether the lower numeric bound of the attribute is open.
`static void` | `main(java.lang.String[] ops)` Simple main method for testing this class.
`java.lang.String` | `name()` Returns the attribute's name.
`int` | `numValues()` Returns the number of attribute values.
`int` | `ordering()` Returns the ordering of the attribute.
`double` | `parseDate(java.lang.String string)`
`java.lang.String` | `toString()` Returns a description of this attribute in ARFF format.
`int` | `type()` Returns the attribute's type as an integer.
`boolean` | `upperNumericBoundIsOpen()` Returns whether the upper numeric bound of the attribute is open.
`java.lang.String` | `value(int valIndex)` Returns a value of a nominal or string attribute.
`double` | `weight()` Returns the attribute's weight.

Methods inherited from class java.lang.Object
`getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### NUMERIC

    public static final int NUMERIC

  Constant set for numeric attributes.

  See Also:
    Constant Field Values

### NOMINAL

    public static final int NOMINAL

  Constant set for nominal attributes.

  See Also:
    Constant Field Values

### STRING

    public static final int STRING

  Constant set for attributes with string values.

  See Also:
    Constant Field Values

### DATE

    public static final int DATE

  Constant set for attributes with date values.

  See Also:
    Constant Field Values

### ORDERING_SYMBOLIC

    public static final int ORDERING_SYMBOLIC

  Constant set for symbolic attributes.

  See Also:
    Constant Field Values

### ORDERING_ORDERED

    public static final int ORDERING_ORDERED

  Constant set for ordered attributes.

  See Also:
    Constant Field Values

### ORDERING_MODULO

    public static final int ORDERING_MODULO

  Constant set for modulo-ordered attributes.

  See Also:
    Constant Field Values

Constructor Detail

### Attribute

    public Attribute(java.lang.String attributeName)

  Constructor for a numeric attribute.

  Parameters:
    `attributeName` - the name for the attribute

### Attribute

    public Attribute(java.lang.String attributeName,
                     ProtectedProperties metadata)

  Constructor for a numeric attribute, where metadata is supplied.

  Parameters:
    `attributeName` - the name for the attribute
    `metadata` - the attribute's properties

### Attribute

    public Attribute(java.lang.String attributeName,
                     java.lang.String dateFormat)

  Constructor for a date attribute.

  Parameters:
    `attributeName` - the name for the attribute
    `dateFormat` - a string suitable for use with SimpleDateFormatter for parsing dates.

### Attribute

    public Attribute(java.lang.String attributeName,
                     java.lang.String dateFormat,
                     ProtectedProperties metadata)

  Constructor for a date attribute, where metadata is supplied.

  Parameters:
    `attributeName` - the name for the attribute
    `dateFormat` - a string suitable for use with SimpleDateFormatter for parsing dates.
    `metadata` - the attribute's properties

### Attribute

    public Attribute(java.lang.String attributeName,
                     FastVector attributeValues)

  Constructor for nominal attributes and string attributes. If a null vector of attribute values is passed to the method, the attribute is assumed to be a string.

  Parameters:
    `attributeName` - the name for the attribute
    `attributeValues` - a vector of strings denoting the attribute values. Null if the attribute is a string attribute.

### Attribute

    public Attribute(java.lang.String attributeName,
                     FastVector attributeValues,
                     ProtectedProperties metadata)

  Constructor for nominal attributes and string attributes, where metadata is supplied. If a null vector of attribute values is passed to the method, the attribute is assumed to be a string.

  Parameters:
    `attributeName` - the name for the attribute
    `attributeValues` - a vector of strings denoting the attribute values. Null if the attribute is a string attribute.
    `metadata` - the attribute's properties

Method Detail

### copy

    public java.lang.Object copy()

  Produces a shallow copy of this attribute.

  Specified by:
    `copy` in interface `Copyable`
  Returns:
    a copy of this attribute with the same index

### enumerateValues

    public final java.util.Enumeration enumerateValues()

  Returns an enumeration of all the attribute's values if the attribute is nominal or a string, null otherwise.

  Returns:
    enumeration of all the attribute's values

### equals

    public final boolean equals(java.lang.Object other)

  Tests if given attribute is equal to this attribute.

  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `other` - the Object to be compared to this attribute
  Returns:
    true if the given attribute is equal to this attribute

### index

    public final int index()

  Returns the index of this attribute.

  Returns:
    the index of this attribute

### indexOfValue

    public final int indexOfValue(java.lang.String value)

  Returns the index of a given attribute value. (The index of the first occurence of this value.)

  Parameters:
    `value` - the value for which the index is to be returned
  Returns:
    the index of the given attribute value if attribute is nominal or a string, -1 if it is numeric or the value can't be found

### isNominal

    public final boolean isNominal()

  Test if the attribute is nominal.

  Returns:
    true if the attribute is nominal

### isNumeric

    public final boolean isNumeric()

  Tests if the attribute is numeric.

  Returns:
    true if the attribute is numeric

### isString

    public final boolean isString()

  Tests if the attribute is a string.

  Returns:
    true if the attribute is a string

### isDate

    public final boolean isDate()

  Tests if the attribute is a date type.

  Returns:
    true if the attribute is a date type

### name

    public final java.lang.String name()

  Returns the attribute's name.

  Returns:
    the attribute's name as a string

### numValues

    public final int numValues()

  Returns the number of attribute values. Returns 0 for numeric attributes.

  Returns:
    the number of attribute values

### toString

    public final java.lang.String toString()

  Returns a description of this attribute in ARFF format. Quotes strings if they contain whitespace characters, or if they are a question mark.

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    a description of this attribute as a string

### type

    public final int type()

  Returns the attribute's type as an integer.

  Returns:
    the attribute's type.

### value

    public final java.lang.String value(int valIndex)

  Returns a value of a nominal or string attribute. Returns an empty string if the attribute is neither nominal nor a string attribute.

  Parameters:
    `valIndex` - the value's index
  Returns:
    the attribute's value as a string

### addStringValue

    public int addStringValue(java.lang.String value)

  Adds a string value to the list of valid strings for attributes of type STRING and returns the index of the string.

  Parameters:
    `value` - The string value to add
  Returns:
    the index assigned to the string, or -1 if the attribute is not of type Attribute.STRING

### addStringValue

    public int addStringValue(Attribute src,
                              int index)

  Adds a string value to the list of valid strings for attributes of type STRING and returns the index of the string. This method is more efficient than addStringValue(String) for long strings.

  Parameters:
    `src` - The Attribute containing the string value to add.
    `int` - index the index of the string value in the source attribute.
  Returns:
    the index assigned to the string, or -1 if the attribute is not of type Attribute.STRING

### formatDate

    public java.lang.String formatDate(double date)

### parseDate

    public double parseDate(java.lang.String string)
                     throws java.text.ParseException

  Throws:
    `java.text.ParseException`

### getMetadata

    public final ProtectedProperties getMetadata()

  Returns the properties supplied for this attribute.

  Returns:
    metadata for this attribute

### ordering

    public final int ordering()

  Returns the ordering of the attribute. One of the following: ORDERING_SYMBOLIC - attribute values should be treated as symbols. ORDERING_ORDERED - attribute values have a global ordering. ORDERING_MODULO - attribute values have an ordering which wraps.

  Returns:
    the ordering type of the attribute

### isRegular

    public final boolean isRegular()

  Returns whether the attribute values are equally spaced.

  Returns:
    whether the attribute is regular or not

### isAveragable

    public final boolean isAveragable()

  Returns whether the attribute can be averaged meaningfully.

  Returns:
    whether the attribute can be averaged or not

### hasZeropoint

    public final boolean hasZeropoint()

  Returns whether the attribute has a zeropoint and may be added meaningfully.

  Returns:
    whether the attribute has a zeropoint or not

### weight

    public final double weight()

  Returns the attribute's weight.

  Returns:
    the attribute's weight as a double

### getLowerNumericBound

    public final double getLowerNumericBound()

  Returns the lower bound of a numeric attribute.

  Returns:
    the lower bound of the specified numeric range

### lowerNumericBoundIsOpen

    public final boolean lowerNumericBoundIsOpen()

  Returns whether the lower numeric bound of the attribute is open.

  Returns:
    whether the lower numeric bound is open or not (closed)

### getUpperNumericBound

    public final double getUpperNumericBound()

  Returns the upper bound of a numeric attribute.

  Returns:
    the upper bound of the specified numeric range

### upperNumericBoundIsOpen

    public final boolean upperNumericBoundIsOpen()

  Returns whether the upper numeric bound of the attribute is open.

  Returns:
    whether the upper numeric bound is open or not (closed)

### isInRange

    public final boolean isInRange(double value)

  Determines whether a value lies within the bounds of the attribute.

  Returns:
    whether the value is in range

### main

    public static void main(java.lang.String[] ops)

  Simple main method for testing this class.

Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD