Page 1 of 1

create dummy choice variables

Posted: 27 Jun 2023, 06:43
by georkapo
Dear Stephane, Dear All,

I am trying to create some dummy choices in collected data through an unlabeled CE in order to investigate sociodemographics that interact with choices. I am using the following code:

Code: Select all

database$choice_assistance=with(database,1*((choice==1)*(Att1==1)|(choice==2)*(Att1.1==1))
					+2*((choice==1)*(Att1==2)|(choice==2)*(Att1.1==2))
					+3*((choice==1)*(Att1==3)|(choice==2)*(Att1.1==3))) 

choiceAnalysis_settings=list(alternatives=c(unit=1,call=2,routes=3),
                             avail=list(unit     =with(database,1*(Att1==1)|(Att1.1==1)),
                                         call    =with(database,1*(Att1==2)|(Att1.1==2)),
                                        routes   =with(database,1*(Att1==3)|(Att1.1==3))),
                             choiceVar=database$choice_assistance,
                             explanators=data.frame(female=(database$gender==2),
                                                    lack_infrastructure=(database$lack_of_bike_infra==1)))

apollo_choiceAnalysis(choiceAnalysis_settings, apollo_control, database)

However, I am getting the following error:

Error in apollo_choiceAnalysis(choiceAnalysis_settings, apollo_control, :
The choiceAnalysis_settings list needs to include an object called "choiceVar"!

Any help will be really useful.

Thank you in advance.
Georgios

Re: create dummy choice variables

Posted: 07 Jul 2023, 11:31
by stephanehess
Georgios

could you share your files with me outside the forum and I'll look into it for you?

Thanks

Stephane

Re: create dummy choice variables

Posted: 07 Jul 2023, 16:32
by stephanehess
Hi

I found the reason

when you create the dummy choice variable, you have

Code: Select all

database$choice_assistance=with(database,1*((choice==1)*(Att1==1)|(choice==2)*(Att1.1==1))
                                        +2*((choice==1)*(Att1==2)|(choice==2)*(Att1.1==2))
                                        +3*((choice==1)*(Att1==3)|(choice==2)*(Att1.1==3))) 
but this can take a value of 0, not just 1,2,3

You then need to also change the rest of the code to be:

Code: Select all

choiceAnalysis_settings=list(alternatives=c(other=0,unit=1,call=2,routes=3),
                             avail=list(other=1,
                                        unit     =with(database,1*(Att1==1)|(Att1.1==1)),
                                        call    =with(database,1*(Att1==2)|(Att1.1==2)),
                                        routes   =with(database,1*(Att1==3)|(Att1.1==3))),
                             choiceVar=database$choice_assistance,
                             explanators=data.frame(female=(database$gender==2),
                                                    lack_infrastructure=(database$lack_of_bike_infra==1)))