Package edu.cmu.tetrad.data
Class DiscreteVariable
java.lang.Object
edu.cmu.tetrad.data.AbstractVariable
edu.cmu.tetrad.data.DiscreteVariable
- All Implemented Interfaces:
Variable
,Node
,TetradSerializable
,Serializable
,Comparable<Node>
Represents a discrete variable as a range of integer-valued categories 0, 1, ..., m - 1, where m is the number of categories for the variable. These integer-valued categories may be associated with categories that may be explicitly set. Categories that are not explicitly set take the are set to DataUtils.defaultCategory(i) for category i.
Instances of this class may currently be used only to represent nominal discrete variables. Support for ordinal discrete variables may be added in the future.
Like other variable classes, DiscreteVariable implements the Node interface. The purpose of this is to allow variables to serve as nodes in graphs.
The index value used to indicate missing data is -99.
- Author:
- josephramsey
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
This is the index in the data which represents missing data internally for this variable.Fields inherited from class edu.cmu.tetrad.data.AbstractVariable
LAST_ID
-
Constructor Summary
ConstructorsConstructorDescriptionDiscreteVariable
(DiscreteVariable variable) Copy constructor.DiscreteVariable
(String name) Builds a discrete variable with the given name and an empty list of categories.DiscreteVariable
(String name, int numCategories) Builds a qualitative variable with the given name and number of categories.DiscreteVariable
(String name, List<String> categories) Builds a qualitative variable with the given name and array of possible categories. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAttribute
(String key, Object value) void
Adds a property change listener.boolean
checkValue
(int category) boolean
Tests whether this variable is equal to the given variable.getAttribute
(String key) getCategory
(int category) int
Returns the x coordinate of the center of this node.int
Returns the y coordinate of the center of this node.int
Returns the name of the variable.Returns the node type for this node.Returns the node shape for this node.int
int
hashCode()
Removes a property change listener.boolean
boolean
boolean
isMissingValue
(Object value) Determines whether the given value is the missing value marker.Creates a new node of the same type as this one with the given name.void
removeAttribute
(String key) static DiscreteVariable
Generates a simple exemplar of this class to test serialization.void
setCategoryNamesDisplayed
(boolean categoryNamesDisplayed) Sets whether categories for this variable should be displayed.void
setCenter
(int centerX, int centerY) Sets the (x, y) coordinates of the center of this node.void
setCenterX
(int centerX) Sets the x coordinate of the center of this node.void
setCenterY
(int centerY) Sets the y coordinate of the center of this node.void
setNodeType
(NodeType nodeType) Sets the node type for this node.void
setNodeVariableType
(NodeVariableType nodeVariableType) Sets the type (domain, interventional status, interventional value..) for this node variabletoString()
Returns the intervention type for this node.Methods inherited from class edu.cmu.tetrad.data.AbstractVariable
checkValue, getName, setName
-
Field Details
-
MISSING_VALUE
public static final int MISSING_VALUEThis is the index in the data which represents missing data internally for this variable.- See Also:
-
-
Constructor Details
-
DiscreteVariable
Builds a discrete variable with the given name and an empty list of categories. Use this constructor if a variable is needed to represent just a list of integer categories with no categories associated with the categories. -
DiscreteVariable
Builds a qualitative variable with the given name and number of categories. The categories have the form 'category'. -
DiscreteVariable
Builds a qualitative variable with the given name and array of possible categories.- Parameters:
name
- The name of the variable.categories
- A String[] array of categories, where the categories[i] is the category for index i.
-
DiscreteVariable
Copy constructor.
-
-
Method Details
-
serializableInstance
Generates a simple exemplar of this class to test serialization. -
getIndex
- Returns:
- the index of the given String category, or -1 if the category is not a category for this variable.
-
getNumCategories
public int getNumCategories()- Returns:
- the number of possible categories for this variable. If categories are associated, this is just the number of string categories. If no categories are associated, this is the maximum integer in the column.
-
getMissingValueMarker
Description copied from interface:Variable
Returns the name of the variable.- Specified by:
getMissingValueMarker
in interfaceVariable
- Specified by:
getMissingValueMarker
in classAbstractVariable
- Returns:
- the missing value marker as an Integer.
-
getCategory
- Returns:
- the variable category specified by the given category.
-
getCategories
- Returns:
- a copy of the array containing the categories for this variable. The string at index i is the category for index i.
-
checkValue
public boolean checkValue(int category) - Parameters:
category
- a category to be checked- Returns:
- true if the given category is legal.
-
isMissingValue
Determines whether the given value is the missing value marker.- Specified by:
isMissingValue
in interfaceVariable
- Specified by:
isMissingValue
in classAbstractVariable
- Parameters:
value
- the value to test; should be an Integer or a String.- Returns:
- true iff the given object is equals to
getMissingValueMarker()
.
-
isCategoryNamesDisplayed
public boolean isCategoryNamesDisplayed()- Returns:
- true iff categories for this variable should be displayed.
-
setCategoryNamesDisplayed
public void setCategoryNamesDisplayed(boolean categoryNamesDisplayed) Sets whether categories for this variable should be displayed. -
hashCode
public int hashCode()Description copied from interface:Node
Removes a property change listener. -
equals
Description copied from interface:Node
Tests whether this variable is equal to the given variable. -
getNodeType
Description copied from interface:Node
Returns the node type for this node.- Specified by:
getNodeType
in interfaceNode
- Returns:
- the node type for this node.
-
setNodeType
Description copied from interface:Node
Sets the node type for this node.- Specified by:
setNodeType
in interfaceNode
- Parameters:
nodeType
- the node type for this node.
-
isAccommodateNewCategories
public boolean isAccommodateNewCategories() -
getCenterX
public int getCenterX()Description copied from interface:Node
Returns the x coordinate of the center of this node.- Specified by:
getCenterX
in interfaceNode
- Returns:
- the x coordinate of the center of the node.
-
setCenterX
public void setCenterX(int centerX) Sets the x coordinate of the center of this node.- Specified by:
setCenterX
in interfaceNode
- Parameters:
centerX
- This coordinate.
-
getCenterY
public int getCenterY()Description copied from interface:Node
Returns the y coordinate of the center of this node.- Specified by:
getCenterY
in interfaceNode
- Returns:
- the y coordinate of the center of the node.
-
setCenterY
public void setCenterY(int centerY) Sets the y coordinate of the center of this node.- Specified by:
setCenterY
in interfaceNode
- Parameters:
centerY
- This coordinate.
-
setCenter
public void setCenter(int centerX, int centerY) Sets the (x, y) coordinates of the center of this node. -
addPropertyChangeListener
Adds a property change listener.- Specified by:
addPropertyChangeListener
in interfaceNode
- Parameters:
l
- This listener.
-
toString
Description copied from interface:Node
Returns the intervention type for this node.- Specified by:
toString
in interfaceNode
- Overrides:
toString
in classAbstractVariable
- Returns:
- the name of the variable followed by its list of categories.
-
like
Description copied from interface:Node
Creates a new node of the same type as this one with the given name.- Specified by:
like
in interfaceNode
- Specified by:
like
in classAbstractVariable
- Parameters:
name
- the name of the new node.- Returns:
- the new node.
-
getNodeVariableType
Description copied from interface:Node
Returns the node shape for this node.- Specified by:
getNodeVariableType
in interfaceNode
- Returns:
- the intervention type
-
setNodeVariableType
Description copied from interface:Node
Sets the type (domain, interventional status, interventional value..) for this node variable- Specified by:
setNodeVariableType
in interfaceNode
- Parameters:
nodeVariableType
- the type (domain, interventional status, interventional value..) for this node variable
-
getAllAttributes
- Specified by:
getAllAttributes
in interfaceNode
-
getAttribute
- Specified by:
getAttribute
in interfaceNode
-
removeAttribute
- Specified by:
removeAttribute
in interfaceNode
-
addAttribute
- Specified by:
addAttribute
in interfaceNode
-