[R] Help with the Error Message in R "Error in 1:nchid : result would be too long a vector"

Rahul Chakraborty ch@kr@r@hu| @end|ng |rom gm@||@com
Tue Sep 22 19:51:43 CEST 2020


David,

My apologies with the first one. I was checking different tutorials on
mlogit where they were using mlogit.data, so I ended up using it.

I am not getting what you are saying by the "duplicates in first two
columns". See, my first column is IND which identifies my individuals,
second column is QES which identifies the question number each
individual faces, 3rd column is a stratification code that can be
ignored. Columns 6-13 are alternative specific variables and rest are
individual specific. So 1st 3 rows indicate 1st question faced by 1st
individual containing 3 alternatives, and so on. So, I have already
arranged the data in long format. Here, I could not get what the
"duplicate in first two columns" mean.


And I am really sorry that there was an error in my code as Rui has
pointed out. The correct code is
mldata1 <- dfidx(mydata, shape = "long",
                  alt.var = "ALT_name",
                  choice = "Choice_binary",
                  id.var = "IND")

It still shows the error-  "the two indexes don't define unique observations"
It would be really helpful if you kindly help.

Regards,


On Tue, Sep 22, 2020 at 8:46 PM David Winsemius <dwinsemius using comcast.net> wrote:
>
> You were told two things about your code:
>
>
> 1) mlogit.data is deprecated by the package authors, so use dfidx.
>
> 2) dfidx does not allow duplicate ids in the first two columns.
>
>
> Which one of those are you asserting is not accurate?
>
>
> --
>
> David.
>
> On 9/21/20 10:20 PM, Rahul Chakraborty wrote:
> > Hello David and everyone,
> >
> > I am really sorry for not abiding by the specific guidelines in my
> > prior communications. I tried to convert the present email in plain
> > text format (at least it is showing me so in my gmail client). I have
> > also converted the xlsx file into a csv format with .txt extension.
> >
> > So, my problem is I need to run panel mixed logit regression for a
> > choice model. There are 3 alternatives, 9 questions for each
> > individual and 516 individuals in data. I have created a csv file in
> > long format from the survey questionnaire. Apart from the alternative
> > specific variables I have many individual specific variables and most
> > of these are dummies (dummy coded). I will use subsets of these in my
> > alternative model specifications. So, in my data I have 100 columns
> > with 13932 rows (3*9*516). After reading the csv file and creating a
> > dataframe 'mydata' I used the following command for mlogit.
> >
> > mldata1<- mlogit.data(mydata, shape = "long", alt.var = "Alt_name",
> > choice = "Choice_binary", id.var = "IND")
> >
> > It gives me the same error message- Error in 1:nchid : result would be
> > too long a vector.
> >
> > The attached file (csv file with .txt extension) is an example of 2
> > individuals each with 3 questions. I have also reduced the number of
> > columns to 57. Now, there are 18 rows. But still if I use the same
> > command on my new data I get the same error message. Can anyone please
> > help me out with this? Because of this error I am stuck at the
> > dataframe level.
> >
> >
> > Thanks in advance.
> >
> >
> > Regards,
> > Rahul Chakraborty
> >
> > On Tue, Sep 22, 2020 at 4:50 AM David Winsemius <dwinsemius using comcast.net> wrote:
> >> @Rahul;
> >>
> >>
> >> You need to learn to post in plain text and attachments may not be xls
> >> or xlsx. They need to be text files. And even if they are comma
> >> separated files and text, they still need to be named with a txt extension.
> >>
> >>
> >> I'm the only one who got the xlsx file. I got the error regardless of
> >> how many column I omitted, so my gues was possibly incorrect. But I did
> >> RTFM. See ?mlogit.datadfi The mlogit.data function is deprecated and you
> >> are told to use the dfidx function. Trying that you now get an error
> >> saying: " the two indexes don't define unique observations".
> >>
> >>
> >>   > sum(duplicated( dfrm[,1:2]))
> >> [1] 12
> >>   > length(dfrm[,1])
> >> [1] 18
> >>
> >> So of your 18 lines in the example file, most of them appear to be
> >> duplicated in their first two rows and apparently that is not allowed by
> >> dfidx.
> >>
> >>
> >> Caveat: I'm not a user of the mlogit package so I'm just reading the
> >> manual and possibly coming up with informed speculation.
> >>
> >> Please read the Posting Guide. You have been warned. Repeated violations
> >> of the policies laid down in that hallowed document will possibly result
> >> in postings being ignored.
> >>



-- 
Rahul Chakraborty
Research Fellow
National Institute of Public Finance and Policy
New Delhi- 110067



More information about the R-help mailing list