Class 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.
- Version:
- $Id: $Id
- Author:
- josephramsey
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThis 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 TypeMethodDescriptionvoidaddAttribute(String key, Object value) addAttribute.voidAdds a property change listener.booleancheckValue(int category) checkValue.booleanTests whether this variable is equal to the given variable.getAllAttributes.getAttribute(String key) getAttribute.Getter for the fieldcategories.getCategory(int category) getCategory.intGetter for the fieldcenterX.intGetter for the fieldcenterY.intgetIndex.getMissingValueMarker.Getter for the fieldnodeType.Returns the node shape for this node.intgetNumCategories.booleanReturns the selection bias status for this node.inthashCode()hashCode.booleanisAccommodateNewCategories.booleanisCategoryNamesDisplayed.booleanisMissingValue(Object value) Tests whether the given value is the missing data marker.Creates a new node of the same type as this one with the given name.voidremoveAttribute(String key) removeAttribute.static DiscreteVariableGenerates a simple exemplar of this class to test serialization.voidsetCategoryNamesDisplayed(boolean categoryNamesDisplayed) Sets whether categories for this variable should be displayed.voidsetCenter(int centerX, int centerY) Sets the (x, y) coordinates of the center of this node.voidsetCenterX(int centerX) Sets the x coordinate of the center of this node.voidsetCenterY(int centerY) Sets the y coordinate of the center of this node.voidsetNodeType(NodeType nodeType) Sets the node type for this node.voidsetNodeVariableType(NodeVariableType nodeVariableType) Sets the type (domain, interventional status, interventional value..) for this node variablevoidsetSelectionBias(boolean selectionBias) Sets the selection bias status for this node.toString()toString.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.- Parameters:
name- aStringobject
-
DiscreteVariable
Builds a qualitative variable with the given name and number of categories. The categories have the form 'category'.- Parameters:
name- aStringobjectnumCategories- a int
-
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.- Parameters:
variable- aDiscreteVariableobject
-
-
Method Details
-
serializableInstance
Generates a simple exemplar of this class to test serialization.- Returns:
- a
DiscreteVariableobject
-
getIndex
getIndex.
- Parameters:
category- aStringobject- Returns:
- the index of the given String category, or -1 if the category is not a category for this variable.
-
getNumCategories
public int getNumCategories()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
getMissingValueMarker.
- Specified by:
getMissingValueMarkerin interfaceVariable- Specified by:
getMissingValueMarkerin classAbstractVariable- Returns:
- the missing value marker as an Integer.
-
getCategory
getCategory.
- Parameters:
category- a int- Returns:
- the variable category specified by the given category.
-
getCategories
Getter for the field
categories.- 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) checkValue.
- Parameters:
category- a category to be checked- Returns:
- true if the given category is legal.
-
isMissingValue
Tests whether the given value is the missing data marker.Tests whether the given value is the missing data marker.
Determines whether the given value is the missing value marker.
- Specified by:
isMissingValuein interfaceVariable- Specified by:
isMissingValuein classAbstractVariable- Parameters:
value- The object value one wants to check as a missing value.- Returns:
- true iff the given object is equals to
getMissingValueMarker().
-
isCategoryNamesDisplayed
public boolean isCategoryNamesDisplayed()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.- Parameters:
categoryNamesDisplayed- a boolean
-
hashCode
public int hashCode()hashCode.
-
equals
Tests whether this variable is equal to the given variable. -
getNodeType
Getter for the field
nodeType.- Specified by:
getNodeTypein interfaceNode- Returns:
- a
NodeTypeobject
-
setNodeType
Sets the node type for this node.- Specified by:
setNodeTypein interfaceNode- Parameters:
nodeType- the node type for this node.
-
getSelectionBias
public boolean getSelectionBias()Description copied from interface:NodeReturns the selection bias status for this node.- Specified by:
getSelectionBiasin interfaceNode- Returns:
- the selection bias status for this node.
-
setSelectionBias
public void setSelectionBias(boolean selectionBias) Description copied from class:AbstractVariableSets the selection bias status for this node.- Specified by:
setSelectionBiasin interfaceNode- Overrides:
setSelectionBiasin classAbstractVariable- Parameters:
selectionBias- the selection bias status for this node.
-
isAccommodateNewCategories
public boolean isAccommodateNewCategories()isAccommodateNewCategories.
- Returns:
- a boolean
-
getCenterX
public int getCenterX()Getter for the field
centerX.- Specified by:
getCenterXin 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.Sets the x coordinate of the center of this node.
- Specified by:
setCenterXin interfaceNode- Parameters:
centerX- This coordinate.
-
getCenterY
public int getCenterY()Getter for the field
centerY.- Specified by:
getCenterYin 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.Sets the y coordinate of the center of this node.
- Specified by:
setCenterYin interfaceNode- Parameters:
centerY- This coordinate.
-
setCenter
public void setCenter(int centerX, int centerY) Sets the (x, y) coordinates of the center of this node.Sets the (x, y) coordinates of the center of this node.
-
addPropertyChangeListener
Adds a property change listener.Adds a property change listener.
- Specified by:
addPropertyChangeListenerin interfaceNode- Parameters:
l- This listener.
-
toString
toString.
- Specified by:
toStringin interfaceNode- Overrides:
toStringin classAbstractVariable- Returns:
- the name of the variable followed by its list of categories.
-
like
Creates a new node of the same type as this one with the given name.- Specified by:
likein interfaceNode- Specified by:
likein classAbstractVariable- Parameters:
name- the name of the new node.- Returns:
- the new node.
-
getNodeVariableType
Returns the node shape for this node.- Specified by:
getNodeVariableTypein interfaceNode- Returns:
- the intervention type
-
setNodeVariableType
Sets the type (domain, interventional status, interventional value..) for this node variable- Specified by:
setNodeVariableTypein interfaceNode- Parameters:
nodeVariableType- the type (domain, interventional status, interventional value..) for this node variable
-
getAllAttributes
getAllAttributes.
- Specified by:
getAllAttributesin interfaceNode- Returns:
- a
Mapobject
-
getAttribute
getAttribute.
- Specified by:
getAttributein interfaceNode- Parameters:
key- aStringobject- Returns:
- a
Objectobject
-
removeAttribute
removeAttribute.
- Specified by:
removeAttributein interfaceNode- Parameters:
key- aStringobject
-
addAttribute
addAttribute.
- Specified by:
addAttributein interfaceNode- Parameters:
key- aStringobjectvalue- aObjectobject
-