Options

Generar nuevo atributo por rango de horas

AlmuVTAlmuVT Member Posts: 8 Contributor II
Hola! Estoy buscando cómo generar una columna que me clasifique los rangos de horas, pero solo encuentro cosas con fechas.
Tengo un atributo que es de tiempo, especificado en horas, minutos y segundos. Lo que quiero es generar un nuevo atributo que especifique a qué turno corresponde ese horario: mañana, tarde o noche. Siendo la mañana desde las 06:30:00 hasta las 14:30:00, la tarde desde las 14:31:00 hasta las 22:30:00 y así.
Gracias, un saludo!

Best Answer

  • Options
    MarcoBarradasMarcoBarradas Administrator, Employee, RapidMiner Certified Analyst, Member Posts: 272 Unicorn
    Solution Accepted
    Hola @AlmuVT,

    Quizás este proceso te sirva:
    La lógica es la siguiente:
    • Duplica el campo con el día y hr para poder extraer la hr del día
    • Utiliza Date to Nominal para poder convertir la hr de HH:mm:ss a HHmmss (de esta forma tienes un número continuo)
    • Parse Numbers te ayudará a convertir el atributo nominal a uno numérico
    • Finalmente con Generate Attributes puedes aplicar una lógica if que agrupe los números según los horarios. En el paso con los pasos anteriores el campo hora tiene valores que van desde 000000 hasta 235959  por lo que es fácil definir los cortes que especificaste.

    <?xml version="1.0" encoding="UTF-8"?><process version="9.10.000">
      <context>
        <input/>
        <output/>
        <macros/>
      </context>
      <operator activated="true" class="process" compatibility="9.10.000" expanded="true" name="Process">
        <parameter key="logverbosity" value="init"/>
        <parameter key="random_seed" value="-1"/>
        <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="utility:create_exampleset" compatibility="9.10.000" expanded="true" height="68" name="Create ExampleSet" width="90" x="112" y="34">
            <parameter key="generator_type" value="date series"/>
            <parameter key="number_of_examples" value="500"/>
            <parameter key="use_stepsize" value="false"/>
            <list key="function_descriptions"/>
            <parameter key="add_id_attribute" value="false"/>
            <list key="numeric_series_configuration"/>
            <list key="date_series_configuration">
              <parameter key="Date" value="2021-08-20 00:00:00.2021-08-21 00:00:00"/>
            </list>
            <list key="date_series_configuration (interval)"/>
            <parameter key="date_format" value="yyyy-MM-dd HH:mm:ss"/>
            <parameter key="time_zone" value="SYSTEM"/>
            <parameter key="column_separator" value=","/>
            <parameter key="parse_all_as_nominal" value="false"/>
            <parameter key="decimal_point_character" value="."/>
            <parameter key="trim_attribute_names" value="true"/>
          </operator>
          <operator activated="true" class="generate_copy" compatibility="9.10.000" expanded="true" height="82" name="Generate Copy" width="90" x="246" y="34">
            <parameter key="attribute_name" value="Date"/>
            <parameter key="new_name" value="HR"/>
          </operator>
          <operator activated="true" class="date_to_nominal" compatibility="9.10.000" expanded="true" height="82" name="Date to Nominal" width="90" x="380" y="34">
            <parameter key="attribute_name" value="HR"/>
            <parameter key="date_format" value="HHmmss"/>
            <parameter key="time_zone" value="SYSTEM"/>
            <parameter key="locale" value="English (United States)"/>
            <parameter key="keep_old_attribute" value="false"/>
          </operator>
          <operator activated="true" class="parse_numbers" compatibility="9.10.000" expanded="true" height="82" name="Parse Numbers" width="90" x="514" y="34">
            <parameter key="attribute_filter_type" value="single"/>
            <parameter key="attribute" value="HR"/>
            <parameter key="attributes" value=""/>
            <parameter key="use_except_expression" value="false"/>
            <parameter key="value_type" value="nominal"/>
            <parameter key="use_value_type_exception" value="false"/>
            <parameter key="except_value_type" value="file_path"/>
            <parameter key="block_type" value="single_value"/>
            <parameter key="use_block_type_exception" value="false"/>
            <parameter key="except_block_type" value="single_value"/>
            <parameter key="invert_selection" value="false"/>
            <parameter key="include_special_attributes" value="false"/>
            <parameter key="decimal_character" value="."/>
            <parameter key="grouped_digits" value="false"/>
            <parameter key="grouping_character" value=","/>
            <parameter key="infinity_representation" value=""/>
            <parameter key="unparsable_value_handling" value="fail"/>
          </operator>
          <operator activated="true" class="generate_attributes" compatibility="9.10.000" expanded="true" height="82" name="Generate Attributes" width="90" x="648" y="34">
            <list key="function_descriptions">
              <parameter key="Agrupa" value="if(HR&gt;=63000 &amp;&amp; HR&lt;=143000,&quot;Mañana&quot;,&#10;if(HR&gt;=143100 &amp;&amp; HR&lt;=223000,&quot;Tarde&quot;,&quot;Noche&quot;))"/>
            </list>
            <parameter key="keep_all" value="true"/>
          </operator>
          <connect from_op="Create ExampleSet" from_port="output" to_op="Generate Copy" to_port="example set input"/>
          <connect from_op="Generate Copy" from_port="example set output" to_op="Date to Nominal" to_port="example set input"/>
          <connect from_op="Date to Nominal" from_port="example set output" to_op="Parse Numbers" to_port="example set input"/>
          <connect from_op="Parse Numbers" from_port="example set output" to_op="Generate Attributes" to_port="example set input"/>
          <connect from_op="Generate Attributes" 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>


Answers

Sign In or Register to comment.