🦉 🎤   RapidMiner Wisdom 2020 - CALL FOR SPEAKERS   🦉 🎤

We are inviting all community members to submit proposals to speak at Wisdom 2020 in Boston.


Whether it's a cool RapidMiner trick or a use case implementation, we want to see what you have.
Form link is below and deadline for submissions is November 15. See you in Boston!

CLICK HERE TO GO TO ENTRY FORM

"While Loop"

szymekszymek Member Posts: 3 Contributor I
edited May 23 in Help
Hello,

Is there a possibility to loop through Example set with sort of  "while" loop?

It seems to me that for-loop is not the most efficient solution for the following problem that I am trying to solve.

I have two tables A and B. Table A has Time1 attribute and Table B has Time2 and EventsCount attributes. Entries in tables A and B are sorted according to the Time1 and Time2 respectively.
Moreover time entries in table A are periodic with period p. I would like to find out how many events from table B  (stored in EventsCount) correspond to every Time1 element from table A. For example, if we have

TableA(Time1)
3
13
23
33
43

TableB(Time2,EventsCount)
4,7
8,1
10,4
15,2
21,5
30,10
36,11
40,2

The answer would be
3,7+1=8
13,4+2=7
23,5
33,10+11=21
43,2

To obtain the result the program has to loop over Time1 attribute in Table A and count all the values from EventsCount column which have Time2 value grater than Time1-p/2 and less than Time1+p/2. Therefore there are two loops, first for Table A and second for Table B. It would be more efficient to implement the second loop as a while loop because we would not have to scan all the elements in table B in this case, but we would only scan the table once.

So, do I have to use For-Loop for that? Any idea about the process to solve the described problem?

Thank you for help,
Szymon


Answers

  • haddockhaddock Member Posts: 849  Guru
    Hi Szymon,

    Check out the "Execute Script" operator, which lets you call Java down on your data, sounds like just what you need, hope so.

  • colocolo Member Posts: 236  Guru
    Hi Szymon,

    if you don't want to code it yourself, you could perhaps use a combination of "Filter Examples" and "Loop Examples" for the second loop to take only the relevant examples from TableB into consideration. But be sure not to write back the filtered ExampleSet, just use is for the computation inside the second loop, then discard/ignore it.

    Regards,
    Matthias
Sign In or Register to comment.