Options

Does Rapidminer support 'RSPLIT'?

ChaewonChaewon Member Posts: 2 Newbie
Does Rapidminer support 'RSPLIT'? I mean split delimited text from right side.
For example,
string = "tic-tac-toe"print(string.rsplit('-', 1))
['tic-tac', 'toe']

Best Answer

  • Options
    ChaewonChaewon Member Posts: 2 Newbie
    Solution Accepted
    Thank you so much for your answer. Balazs. It works perfectly.
    Happy new year.

Answers

  • Options
    BalazsBaranyBalazsBarany Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert Posts: 955 Unicorn
    Hi!

    You can achieve this easily with a regular expression replacement.

    In Generate Attributes, you can use such a function:
    replaceAll(string, "(.+)-(.+)", "$1")
    $1 refers to the first match, $2 to the second one. Regular expression matches are "greedy", so the first one consumes as much of the string as it can, until the dash, and puts the rest into the second match.

    Here's an example process:
    <?xml version="1.0" encoding="UTF-8"?><process version="9.10.011">
      <context>
        <input/>
        <output/>
        <macros/>
      </context>
      <operator activated="true" class="process" compatibility="9.10.011" 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.011" expanded="true" height="68" name="Create ExampleSet" width="90" x="112" y="34">
            <parameter key="generator_type" value="comma separated text"/>
            <parameter key="number_of_examples" value="100"/>
            <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"/>
            <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="input_csv_text" value="string&#10;&quot;tic-tac-toe&quot;"/>
            <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_attributes" compatibility="9.10.011" expanded="true" height="82" name="Generate Attributes" width="90" x="246" y="34">
            <list key="function_descriptions">
              <parameter key="part1" value="replaceAll(string, &quot;(.+)-(.+)&quot;, &quot;$1&quot;)"/>
              <parameter key="part2" value="replaceAll(string, &quot;(.+)-(.+)&quot;, &quot;$2&quot;)"/>
            </list>
            <parameter key="keep_all" value="true"/>
          </operator>
          <connect from_op="Create ExampleSet" from_port="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>


    Regards,
    Balázs


Sign In or Register to comment.