Convert and compare - Date and Time
Hi,
I have a dataset with 2 columns (Date and Time):
Date showing "1/1/2016", "23/4/2016".
Time showing "12:04:06 PM", "7:12:23 AM".
Question: I would like to show that any data with date (earlier than 3/2/2016) or time (earlier than 9:00:00 AM), a status will show "1" else show "2", I tried below but having error. May I know which area I have done wrongly and can the display be kept as original?
====
1. I import the data and noticed that the data type is polynominal for the date and time.
2. Thus, I used the data transformation "Nominal to Date":
a) For date, i convert to "date" data type with date format as "dd/mm/yyyy"
b) For time, I convert to "time" data type with date format as "hh:mm:ss a"
3. I used generate attribute to do comparison.
a) attribute name: status
b) function expression: if(Date<"3/2/2016" || Time<"9:00:00 AM",1,2)
However, I received the following error:
Answers
I think you need to use the eval() function for this, which I don't think is available in the version you are using. It appears you are using v5.3?
I have three Attribute Day, Month, and Year. i want to get it like 22/12/2018. do we have any function for it?
Ingo
You can concatenate these three attributes (attributes should be of type nominal) using Generate attributes operator into a single attribute and then parse it (if you need it as a date datatype) into a date using Nominal to date operator. Sample XML code below.
<?xml version="1.0" encoding="UTF-8"?><process version="9.2.001">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="9.2.001" expanded="true" name="Process">
<parameter key="logverbosity" value="init"/>
<parameter key="random_seed" value="2001"/>
<parameter key="send_mail" value="never"/>
<parameter key="notification_email" value=""/>
<parameter key="process_duration_for_mail" value="30"/>
<parameter key="encoding" value="SYSTEM"/>
<process expanded="true">
<operator activated="true" class="retrieve" compatibility="9.2.001" expanded="true" height="68" name="Retrieve DataSet" width="90" x="112" y="85">
<parameter key="repository_entry" value="//Local Repository/RapidMIner/DataSet"/>
</operator>
<operator activated="true" class="generate_attributes" compatibility="9.2.001" expanded="true" height="82" name="Generate Attributes" width="90" x="447" y="85">
<list key="function_descriptions">
<parameter key="Date" value="concat(SURVEY,"/",DOEID,"/",WALLTYPE)"/>
</list>
<parameter key="keep_all" value="true"/>
</operator>
<operator activated="true" class="nominal_to_date" compatibility="9.2.001" expanded="true" height="82" name="Nominal to Date" width="90" x="648" y="85">
<parameter key="attribute_name" value="Date"/>
<parameter key="date_type" value="date"/>
<parameter key="date_format" value="yyyy/MM/dd"/>
<parameter key="time_zone" value="SYSTEM"/>
<parameter key="locale" value="English (United States)"/>
<parameter key="keep_old_attribute" value="false"/>
</operator>
<connect from_op="Retrieve DataSet" from_port="output" to_op="Generate Attributes" to_port="example set input"/>
<connect from_op="Generate Attributes" from_port="example set output" to_op="Nominal to Date" to_port="example set input"/>
<connect from_op="Nominal to Date" from_port="example set output" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>
Varun
https://www.varunmandalapu.com/
Be Safe. Follow precautions and Maintain Social Distancing
For transformations and data types you can also use turbo prep and then go in your process.