Ejemplo n.º 1
0
def ordinal(var_name: str, ordered_categories: list):
    # Create order tuple
    categories = OrderedDict()
    for i, c in enumerate(ordered_categories):
        categories[c] = i+1 # start at 1 not 0
        
    return Variable.from_spec(var_name, DataType.ORDINAL, categories, [1, len(categories)])
Ejemplo n.º 2
0
def select(var: Variable, op: str, other: Literal): 
    if (op == '=='):
        return var.subset_equals(other)
    elif (op == '!='):
        return var.subset_not_equals(other)
    elif (op == '<'):
        return var.subset_lt(other)
    elif (op == '<='):
        return var.subset_le(other)
    elif (op == '>'):
        return var.subset_gt(other)
    elif (op == '>='):
        return var.subset_ge(other)
    else: 
        raise ValueError(f"Do not support the operator{op}")
Ejemplo n.º 3
0
def ratio(var_name: str, drange: list=None):
    return Variable.from_spec(var_name, DataType.RATIO, None, drange) # treat range like categories, check that all values are within range
Ejemplo n.º 4
0
def interval(var_name: str, drange: list=None):
    return Variable.from_spec(var_name, DataType.INTERVAL, None, drange) # treat range like categories, check that all values are within range
Ejemplo n.º 5
0
def nominal(var_name: str, unordered_categories: list):
    categories = OrderedDict()
    for i, c in enumerate(unordered_categories):
        categories[c] = -1
    return Variable.from_spec(var_name, DataType.NOMINAL, categories, None)