If statement for many value
Tira
New Altair Community Member
I have many type of crime to classify into two group (violence crime and property crime)
I have tried using generate attribute if statement
If(Crime=="murder", "violence crime", "Property crime")
however it gives me an error when i do
If(crime=="murder" ^ "rape" ^ "Crime3", "violence crime", "property crime")
can someone help me?
crime is binominal attribute btw
I have tried using generate attribute if statement
If(Crime=="murder", "violence crime", "Property crime")
however it gives me an error when i do
If(crime=="murder" ^ "rape" ^ "Crime3", "violence crime", "property crime")
can someone help me?
crime is binominal attribute btw
Tagged:
0
Answers
-
Hi @TiraAnother way to do this would be to have an example set that has to attributes, "crime" and "crime type", where you list for each crime which type it is. Then you can use the Join operator, marking both crime attributes as the key attribute and using a left join (i.e. keep all examples from the original data set). Afterwards, you can use the Replace Missing Values operator on the crime type attribute and specify "property crime" as the replacement.
<?xml version="1.0" encoding="UTF-8"?><process version="9.3.000"><br> <context><br> <input/><br> <output/><br> <macros/><br> </context><br> <operator activated="true" class="process" compatibility="9.3.000" expanded="true" name="Process"><br> <parameter key="logverbosity" value="init"/><br> <parameter key="random_seed" value="2001"/><br> <parameter key="send_mail" value="never"/><br> <parameter key="notification_email" value=""/><br> <parameter key="process_duration_for_mail" value="30"/><br> <parameter key="encoding" value="SYSTEM"/><br> <process expanded="true"><br> <operator activated="true" class="retrieve" compatibility="9.3.000" expanded="true" height="68" name="Retrieve crime" width="90" x="45" y="85"><br> <parameter key="repository_entry" value="//Local Repository/crime"/><br> </operator><br> <operator activated="true" class="retrieve" compatibility="9.3.000" expanded="true" height="68" name="Retrieve crime map" width="90" x="45" y="187"><br> <parameter key="repository_entry" value="//Local Repository/crime map"/><br> </operator><br> <operator activated="true" class="concurrency:join" compatibility="9.3.000" expanded="true" height="82" name="Join" width="90" x="246" y="85"><br> <parameter key="remove_double_attributes" value="true"/><br> <parameter key="join_type" value="left"/><br> <parameter key="use_id_attribute_as_key" value="false"/><br> <list key="key_attributes"><br> <parameter key="crime" value="crime"/><br> </list><br> <parameter key="keep_both_join_attributes" value="false"/><br> </operator><br> <operator activated="true" class="replace_missing_values" compatibility="9.3.000" expanded="true" height="103" name="Replace Missing Values" width="90" x="380" y="85"><br> <parameter key="return_preprocessing_model" value="false"/><br> <parameter key="create_view" value="false"/><br> <parameter key="attribute_filter_type" value="single"/><br> <parameter key="attribute" value="crime type"/><br> <parameter key="attributes" value=""/><br> <parameter key="use_except_expression" value="false"/><br> <parameter key="value_type" value="attribute_value"/><br> <parameter key="use_value_type_exception" value="false"/><br> <parameter key="except_value_type" value="time"/><br> <parameter key="block_type" value="attribute_block"/><br> <parameter key="use_block_type_exception" value="false"/><br> <parameter key="except_block_type" value="value_matrix_row_start"/><br> <parameter key="invert_selection" value="false"/><br> <parameter key="include_special_attributes" value="false"/><br> <parameter key="default" value="value"/><br> <list key="columns"/><br> <parameter key="replenishment_value" value="property crime"/><br> </operator><br> <connect from_op="Retrieve crime" from_port="output" to_op="Join" to_port="left"/><br> <connect from_op="Retrieve crime map" from_port="output" to_op="Join" to_port="right"/><br> <connect from_op="Join" from_port="join" to_op="Replace Missing Values" to_port="example set input"/><br> <connect from_op="Replace Missing Values" from_port="example set output" to_port="result 1"/><br> <portSpacing port="source_input 1" spacing="0"/><br> <portSpacing port="sink_result 1" spacing="0"/><br> <portSpacing port="sink_result 2" spacing="0"/><br> </process><br> </operator><br></process><br><br>
To create this crime mapping example set, you can for example use the Data Editor (found in the View -> Show Panel menu).Hope this helps!
Jan
0 -
ah there's always many ways to solve these kind of problems! You can also use Generate Attributes and do:
crime=="murder"||crime=="rape"||crime=="Crime3", "violence crime", "property crime")if(
Scott2 -
Hi,if its getting more complex: I know people using groovy for complex switch case. see: https://medium.com/@mSchmitz_/scripting-in-rapidminer-part-i-macros-b973a298dd8f~Martin
1 -
You can also use the Map operator---there are so many ways to do this in RapidMiner!
2