#1 by NZaccaria
Hi all, I am having issues in something that apparently seems simple, but it is not for me. I would like to assign a random number between 1 and 24 to each group, such that it stays fixed during all experiment. The code that I have so far draws a different number at each round, but I have not been able to fix it. The random number in the code is given by 'groups.indexed'. Maybe should I write it somewhere else and not in the creating_session function? class Group(BaseGroup): id_player0 = models.IntegerField() #models.IntegerField() realized_avg_price = models.IntegerField() transformed_avg_price = models.FloatField() indexed = models.IntegerField() def creating_session(session): for groups in session.get_groups(): groups.indexed = random.randint(1, 24) if session.round_number == 1: actual_player0 = C.dataset[groups.indexed - 1] groups.session.vars['actual_player0'] = actual_player0 groups.realized_avg_price = actual_player0[session.round_number-1] groups.transformed_avg_price = groups.realized_avg_price / C.guess_max
#2 by ccrabbe
Hi NZaccaria - crreating_session is run once per subsession - not once per session. So each round in your game is getting its own execution of creating_session (with its own random number calculated). So to only calculate it once, I would only calculate it for round_number==1, and then assign the value of that to later rounds, sosomething like: if subsession.round_number == 1: groups.indexed = random.randint(1,24) else: groups.indexed = groups.in_round(1).indexed Thanks, --Chris
#3 by NZaccaria
Hi Chris, Thank you so much! This fixed my problem. It was such an easy fix, but I could not see it. Thank you again! NZaccaria