@@ -80,6 +80,19 @@ def get_unique_names(names, proposed):
8080 return proposed
8181
8282
83+ def _table_with_annotation_column (data , values , column_data , var_name ):
84+ var = DiscreteVariable (get_next_name (data .domain , var_name ), values )
85+ class_vars , metas = data .domain .class_vars , data .domain .metas
86+ if not data .domain .class_vars :
87+ class_vars += (var , )
88+ else :
89+ metas += (var , )
90+ domain = Domain (data .domain .attributes , class_vars , metas )
91+ table = data .transform (domain )
92+ table [:, var ] = column_data .reshape ((len (data ), 1 ))
93+ return table
94+
95+
8396def create_annotated_table (data , selected_indices ):
8497 """
8598 Returns data with concatenated flag column. Flag column represents
@@ -92,15 +105,11 @@ def create_annotated_table(data, selected_indices):
92105 """
93106 if data is None :
94107 return None
95- names = [var .name for var in data .domain .variables + data .domain .metas ]
96- name = get_next_name (names , ANNOTATED_DATA_FEATURE_NAME )
97- domain = add_columns (data .domain , metas = [DiscreteVariable (name , ("No" , "Yes" ))])
98108 annotated = np .zeros ((len (data ), 1 ))
99109 if selected_indices is not None :
100110 annotated [selected_indices ] = 1
101- table = data .transform (domain )
102- table [:, name ] = annotated
103- return table
111+ return _table_with_annotation_column (
112+ data , ("No" , "Yes" ), annotated , ANNOTATED_DATA_FEATURE_NAME )
104113
105114
106115def create_groups_table (data , selection ,
@@ -115,10 +124,4 @@ def create_groups_table(data, selection,
115124 mask = np .flatnonzero (selection )
116125 data = data [mask ]
117126 selection = selection [mask ] - 1
118-
119- var_name = get_next_name (data .domain , var_name )
120- metas = data .domain .metas + (DiscreteVariable (var_name , values ), )
121- domain = Domain (data .domain .attributes , data .domain .class_vars , metas )
122- table = data .transform (domain )
123- table .metas [:, len (data .domain .metas ):] = selection .reshape (len (data ), 1 )
124- return table
127+ return _table_with_annotation_column (data , values , selection , var_name )
0 commit comments