Dear List I am trying to fit a multinomial model using the mlogit package. Attempting to load the data into mlogit presents the following error. MLOG<-mlogit.data(Mult3,shape="long",choice="CHOICE",alt.var="mode.ids",indivs = "set3",chid.var = "obs") Error in `row.names<-.data.frame`(`*tmp*`, value = c("1.1", "1.2", "1.3", : duplicate 'row.names' are not allowed In addition: Warning message: non-unique values when setting 'row.names': '1.1', '1.2', '1.3', '1.4', '1.5', '1.6', '10.1', '10.2', '10.3', '10.4', '10.5', '10.6', '100.1', '100.2', '100.3', '100.4', '100.5', '100.6', '1000.1', '1000.2', '1000.3', '1000.4', '1000.5', '1000.6', '1001.1', '1001.2', '1001.3', '1001.4', '1001.5', '1001.6', '1002.1', '1002.2', '1002.3', '1002.4', '1002.5', '1002.6', '1003.1', '1003.2', '1003.3', '1003.4', '1003.5', '1003.6', '1004.1', '1004.2', '1004.3', '1004.4', '1004.5', '1004.6', '1005.1', '1005.2', '1005.3', '1005.4', '1005.5', '1005.6', '1006.1', '1006.2', '1006.3', '1006.4', '1006.5', '1006.6', '1007.1', '1007.2', '1007.3', '1007.4', '1007.5', '1007.6', '1008.1', '1008.2', '1008.3', '1008.4', '1008.5', '1008.6', '1009.1', '1009.2', '1009.3', '1009.4', '1009.5', '1009.6', '101.1', '101.2', '101.3', '101.4', '101.5', '101.6', '1010.1', '1010.2', '1010.3', '1010.4', '1010.5', '1010.6', '1011.1', '1011.2', '1011.3', '1011.4', '1011.5', '1011.6', '1012.1', '1012.2', '1012.3', '1012.4' [... truncated]>The code that I am running is as follows Mult3$mode.ids<-as.factor(Mult3$br) Mult3$indivs<-factor(Mult3$set3) Mult3$CHOICE<-factor(Mult3$choice,labels=c("no","yes")) MLOG<-mlogit.data(Mult3,shape="long",choice="CHOICE",alt.var="mode.ids",indivs = "set3",chid.var = "obs") My data is structured as follows dput(head(Mult3,25)) structure(list(dn = c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4), obs = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L), choice = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L), br = c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L), mth = c(487, 487, 487, 487, 487, 487, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 489, 489, 489, 489, 489, 489, 489), tcomp = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), num = c(642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642), prom1 = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0), prom2 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), prom3 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0), prom4 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), prom5 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), tprom = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0), cLOSEC = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cNEXIUM = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0), cPARIET = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cPROTIUM = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0 ), cZANTAC = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cZOTON = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0), comp1 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp2 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp3 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp4 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), lpat = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), zpat = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), doq = c(78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78), part = c(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3), NurP = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), PhP = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), NoNon = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ), GPspec = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Special interest GP", "No special interest"), class = "factor"), Newp = structure(c(4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("Always among first to try new product", "Like to try new regimens when available", "Wait to be confortable how the product works", "Prefer tried and tested", "Reluctant to try new products"), class = "factor"), Guide = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L ), .Label = c("Always follow local guidelines/advice from PCT", "Often follow local guidelines/advice from PCT", "Sometimes follow local guidelines/advice from PCT", "Rarely follow local guidelines/advice from PCT", "Prefer to make my own decision regardless of advice" ), class = "factor"), SHA = structure(c(9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L), .Label = c("North East", "North West", "Yorkshire & Humber", "West Midlands", "East Midlands", "East of England", "South West", "South Central", "London", "South East Coast", "Scotland", "Wales"), class = "factor"), size = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("SINGLE HANDED", "2 PARTNERS", "3 - 5 PARTNERS", "6 - 9 PARTNERS", "10 PLUS PARTNERS" ), class = "factor"), exp = c(32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32), ALL_P = c(0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642, 0.529516577720642), sex = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("0", "1"), class = "factor"), disp = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ), .Label = c("0", "1"), class = "factor"), form = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("0", "1"), class = "factor"), set3 = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), set = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5), set2 = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5), tag1 = c(4L, 4L, 4L, 4L, 4L, 0L, 4L, 4L, 0L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 0L, 4L, 4L, 0L, 4L, 4L, 4L, 4L), mode.ids = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L), .Label = c("1", "2", "3", "4", "5", "6"), class = "factor"), indivs = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "23", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "40", "41", "42", "43", "44", "45", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93"), class = "factor"), CHOICE = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L), .Label = c("no", "yes"), class = "factor")), .Names = c("dn", "obs", "choice", "br", "mth", "tcomp", "num", "prom1", "prom2", "prom3", "prom4", "prom5", "tprom", "cLOSEC", "cNEXIUM", "cPARIET", "cPROTIUM", "cZANTAC", "cZOTON", "comp1", "comp2", "comp3", "comp4", "lpat", "zpat", "doq", "part", "NurP", "PhP", "NoNon", "GPspec", "Newp", "Guide", "SHA", "size", "exp", "ALL_P", "sex", "disp", "form", "set3", "set", "set2", "tag1", "mode.ids", "indivs", "CHOICE"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25"), class = "data.frame") I have noticed several previous posts regarding this error but no resolution has been posted to my knowledge. Any help in resolving this would be appreciated. Best wishes Graham [[alternative HTML version deleted]]
Hi, Try this: ?Mult3$mode.ids ?#[1] 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 #Levels: 1 2 3 4 5 6 I guess the key is to have equal number of alternatives. ?Mult3$mode.ids<- as.numeric(as.character(Mult3$mode.ids)) ?res<-mlogit.data(Mult3[-25,],shape="long",choice="CHOICE",alt.var="mode.ids",indivs="set3",chid.vars="obs") head(res,2) #??? dn obs choice br mth tcomp num prom1 prom2 prom3 prom4 prom5 tprom cLOSEC #1.1? 4?? 1????? 0? 1 487???? 0 642???? 0???? 0???? 0???? 0???? 0???? 0????? 0 #1.2? 4?? 1????? 0? 2 487???? 0 642???? 0???? 0???? 0???? 0???? 0???? 0????? 0 ? #? cNEXIUM cPARIET cPROTIUM cZANTAC cZOTON comp1 comp2 comp3 comp4 lpat zpat #1.1?????? 0?????? 0??????? 0?????? 0????? 0???? 0???? 0???? 0???? 0??? 0??? 0 #1.2?????? 0?????? 0??????? 0?????? 0????? 0???? 0???? 0???? 0???? 0??? 0??? 0 ?# ? doq part NurP PhP NoNon????????????? GPspec??????????????????? Newp #1.1? 78??? 3??? 0?? 0???? 1 No special interest Prefer tried and tested #1.2? 78??? 3??? 0?? 0???? 1 No special interest Prefer tried and tested ?# ????????????????????????????????????????? Guide??? SHA?????????? size exp #1.1 Often follow local guidelines/advice from PCT London 3 - 5 PARTNERS? 32 #1.2 Often follow local guidelines/advice from PCT London 3 - 5 PARTNERS? 32 ?# ????? ALL_P sex disp form set3 set set2 tag1 mode.ids indivs CHOICE #1.1 0.5295166?? 1??? 0??? 0??? 1?? 1??? 1??? 4??????? 1????? 1? FALSE #1.2 0.5295166?? 1??? 0??? 0??? 1?? 1??? 1??? 4??????? 2????? 1? FALSE A.K. ----- Original Message ----- From: "Leask, Graham" <g.leask at aston.ac.uk> To: "r-help at r-project.org" <r-help at r-project.org> Cc: Sent: Sunday, April 7, 2013 10:39 AM Subject: [R] mlogit error Dear List I am trying to fit a multinomial model using the mlogit package. Attempting to load the data into mlogit presents the following error. MLOG<-mlogit.data(Mult3,shape="long",choice="CHOICE",alt.var="mode.ids",indivs = "set3",chid.var = "obs") Error in `row.names<-.data.frame`(`*tmp*`, value = c("1.1", "1.2", "1.3",? : ? duplicate 'row.names' are not allowed In addition: Warning message: non-unique values when setting 'row.names': '1.1', '1.2', '1.3', '1.4', '1.5', '1.6', '10.1', '10.2', '10.3', '10.4', '10.5', '10.6', '100.1', '100.2', '100.3', '100.4', '100.5', '100.6', '1000.1', '1000.2', '1000.3', '1000.4', '1000.5', '1000.6', '1001.1', '1001.2', '1001.3', '1001.4', '1001.5', '1001.6', '1002.1', '1002.2', '1002.3', '1002.4', '1002.5', '1002.6', '1003.1', '1003.2', '1003.3', '1003.4', '1003.5', '1003.6', '1004.1', '1004.2', '1004.3', '1004.4', '1004.5', '1004.6', '1005.1', '1005.2', '1005.3', '1005.4', '1005.5', '1005.6', '1006.1', '1006.2', '1006.3', '1006.4', '1006.5', '1006.6', '1007.1', '1007.2', '1007.3', '1007.4', '1007.5', '1007.6', '1008.1', '1008.2', '1008.3', '1008.4', '1008.5', '1008.6', '1009.1', '1009.2', '1009.3', '1009.4', '1009.5', '1009.6', '101.1', '101.2', '101.3', '101.4', '101.5', '101.6', '1010.1', '1010.2', '1010.3', '1010.4', '1010.5', '1010.6', '1011.1', '1011.2', '1011.3', '1011.4', '1011.5', '1011.6', '1012.1', '1012.2', '1012.3! ', '1012.4' [... truncated]>The code that I am running is as follows Mult3$mode.ids<-as.factor(Mult3$br) Mult3$indivs<-factor(Mult3$set3) Mult3$CHOICE<-factor(Mult3$choice,labels=c("no","yes")) MLOG<-mlogit.data(Mult3,shape="long",choice="CHOICE",alt.var="mode.ids",indivs = "set3",chid.var = "obs") My data is structured as follows dput(head(Mult3,25)) structure(list(dn = c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4), obs = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L), choice = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L), br = c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L), mth = c(487, 487, 487, 487, 487, 487, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 489, 489, 489, 489, 489, 489, 489), tcomp = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), num = c(642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642), prom1 = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0), prom2 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), prom3 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0), prom4 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), prom5 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), tprom = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0), cLOSEC = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cNEXIUM = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0), cPARIET = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cPROTIUM = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0 ), cZANTAC = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cZOTON = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0), comp1 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp2 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp3 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp4 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), lpat = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), zpat = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), doq = c(78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78), part = c(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3), NurP = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), PhP = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), NoNon = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ), GPspec = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Special interest GP", "No special interest"), class = "factor"), Newp = structure(c(4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("Always among first to try new product", "Like to try new regimens when available", "Wait to be confortable how the product works", "Prefer tried and tested", "Reluctant to try new products"), class = "factor"), ? ? Guide = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ? ? 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L ? ? ), .Label = c("Always follow local guidelines/advice from PCT", ? ? "Often follow local guidelines/advice from PCT", "Sometimes follow local guidelines/advice from PCT", ? ? "Rarely follow local guidelines/advice from PCT", "Prefer to make my own decision regardless of advice" ? ? ), class = "factor"), SHA = structure(c(9L, 9L, 9L, 9L, 9L, ? ? 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, ? ? 9L, 9L, 9L, 9L, 9L), .Label = c("North East", "North West", ? ? "Yorkshire & Humber", "West Midlands", "East Midlands", "East of England", ? ? "South West", "South Central", "London", "South East Coast", ? ? "Scotland", "Wales"), class = "factor"), size = structure(c(3L, ? ? 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, ? ? 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("SINGLE HANDED", ? ? "2 PARTNERS", "3 - 5 PARTNERS", "6 - 9 PARTNERS", "10 PLUS PARTNERS" ? ? ), class = "factor"), exp = c(32, 32, 32, 32, 32, 32, 32, ? ? 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, ? ? 32, 32, 32), ALL_P = c(0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642), sex = structure(c(2L, ? ? 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ? ? 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("0", "1"), class = "factor"), ? ? disp = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ? ? ), .Label = c("0", "1"), class = "factor"), form = structure(c(1L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("0", "1"), class = "factor"), ? ? set3 = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ? ? 1, 1, 1, 1, 1, 1, 1, 1, 1), set = c(1, 1, 1, 1, 1, 1, 2, ? ? 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5), set2 = c(1, ? ? 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, ? ? 4, 4, 4, 4, 5), tag1 = c(4L, 4L, 4L, 4L, 4L, 0L, 4L, 4L, ? ? 0L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 0L, 4L, 4L, 0L, 4L, 4L, ? ? 4L, 4L), mode.ids = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 1L, ? ? 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, ? ? 5L, 6L, 1L), .Label = c("1", "2", "3", "4", "5", "6"), class = "factor"), ? ? indivs = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, ? ? 1L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8", "9", ? ? "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", ? ? "20", "21", "23", "25", "26", "27", "28", "29", "30", "31", ? ? "32", "33", "34", "35", "36", "37", "38", "40", "41", "42", ? ? "43", "44", "45", "47", "48", "49", "50", "51", "52", "53", ? ? "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", ? ? "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", ? ? "74", "75", "76", "77", "78", "79", "80", "82", "83", "84", ? ? "85", "86", "87", "88", "89", "90", "91", "92", "93"), class = "factor"), ? ? CHOICE = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, ? ? 1L), .Label = c("no", "yes"), class = "factor")), .Names = c("dn", "obs", "choice", "br", "mth", "tcomp", "num", "prom1", "prom2", "prom3", "prom4", "prom5", "tprom", "cLOSEC", "cNEXIUM", "cPARIET", "cPROTIUM", "cZANTAC", "cZOTON", "comp1", "comp2", "comp3", "comp4", "lpat", "zpat", "doq", "part", "NurP", "PhP", "NoNon", "GPspec", "Newp", "Guide", "SHA", "size", "exp", "ALL_P", "sex", "disp", "form", "set3", "set", "set2", "tag1", "mode.ids", "indivs", "CHOICE"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25"), class = "data.frame") I have noticed several previous posts regarding this error but no resolution has been posted to my knowledge. Any help in resolving this would be appreciated. Best wishes Graham ??? [[alternative HTML version deleted]] ______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
HI Graham, Try this: ?lst1<-split(Mult3,Mult3$obs) ?Mult3New<-do.call(rbind,lst1[lapply(lst1,nrow)==6]) # YOu can change 6 to other numbers res1<- mlogit.data(Mult3New,shape="long",choice="CHOICE",alt.var="mode.ids",indivs="set3",chid.vars="obs") head(res1,2) #??? dn obs choice br mth tcomp num prom1 prom2 prom3 prom4 prom5 tprom cLOSEC #1.1? 4?? 1????? 0? 1 487???? 0 642???? 0???? 0???? 0???? 0???? 0???? 0????? 0 #1.2? 4?? 1????? 0? 2 487???? 0 642???? 0???? 0???? 0???? 0???? 0???? 0????? 0 #??? cNEXIUM cPARIET cPROTIUM cZANTAC cZOTON comp1 comp2 comp3 comp4 lpat zpat #1.1?????? 0?????? 0??????? 0?????? 0????? 0???? 0???? 0???? 0???? 0??? 0??? 0 #1.2?????? 0?????? 0??????? 0?????? 0????? 0???? 0???? 0???? 0???? 0??? 0??? 0 #??? doq part NurP PhP NoNon????????????? GPspec??????????????????? Newp #1.1? 78??? 3??? 0?? 0???? 1 No special interest Prefer tried and tested #1.2? 78??? 3??? 0?? 0???? 1 No special interest Prefer tried and tested #??????????????????????????????????????????? Guide??? SHA?????????? size exp #1.1 Often follow local guidelines/advice from PCT London 3 - 5 PARTNERS? 32 #1.2 Often follow local guidelines/advice from PCT London 3 - 5 PARTNERS? 32 #??????? ALL_P sex disp form set3 set set2 tag1 mode.ids indivs CHOICE #1.1 0.5295166?? 1??? 0??? 0??? 1?? 1??? 1??? 4??????? 1????? 1? FALSE #1.2 0.5295166?? 1??? 0??? 0??? 1?? 1??? 1??? 4??????? 2????? 1? FALSE A.K. ----- Original Message ----- From: "Leask, Graham" <g.leask at aston.ac.uk> To: arun <smartpink111 at yahoo.com> Cc: Sent: Sunday, April 7, 2013 11:28 AM Subject: RE: [R] mlogit error Hi Arun, I think you are right the issue may be how to identify those obs where this doesn't apply for whatever reason. The issue I think is the size of the data which makes identifying aberrant observations difficult. This should be a balanced choice set but... Acid brand | choices as | ? ? numeric |? ? ? Freq.? ? Percent? ? ? ? Cum. ------------+----------------------------------- ? ? ? ? ? 1 |? ? 41,037? ? ? 16.69? ? ? 16.69 ? ? ? ? ? 2 |? ? 41,037? ? ? 16.69? ? ? 33.38 ? ? ? ? ? 3 |? ? 41,036? ? ? 16.69? ? ? 50.08 ? ? ? ? ? 4 |? ? 40,849? ? ? 16.62? ? ? 66.69 ? ? ? ? ? 5 |? ? 40,849? ? ? 16.62? ? ? 83.31 ? ? ? ? ? 6 |? ? 41,036? ? ? 16.69? ? ? 100.00 ------------+----------------------------------- ? ? ? Total |? ? 245,844? ? ? 100.00 I'm sure this is at the root of the problem. Is there a straightforward way in R to keep the balanced and lose the non balanced obs?> Mult3$CHOICE<-factor(Mult3$choice,labels=c("no","yes")) > Mult3$mode.ids<- as.numeric(as.character(Mult3$mode.ids)) >? res<-mlogit.data(Mult3[-25,],shape="long",choice="CHOICE",alt.var="mode.ids",indivs="set3",chid.vars="obs")Error in `row.names<-.data.frame`(`*tmp*`, value = c("1.1", "1.2", "1.3",? : ? duplicate 'row.names' are not allowed In addition: Warning message: non-unique values when setting 'row.names': '1.3', '20779.6', '20780.6', '20781.6', '20782.6', '20783.6', '20784.6', '20785.6', '20786.6', '20787.6', '20788.6', '20789.6', '20790.6', '20791.6', '20792.6', '20793.6', '20794.6', '20795.6', '20796.6', '20797.6', '20798.6', '20799.6', '20800.6', '20801.6', '20802.6', '20803.6', '20804.6', '20805.6', '20806.6', '20807.6', '20808.6', '20809.6', '20810.6', '20811.1', '20812.1', '20813.1', '20814.1', '20815.1', '20816.1', '20817.1', '20818.1', '20819.1', '20820.1', '20821.1', '20822.1', '20823.1', '20824.1', '20825.1', '20826.1', '20827.1', '20828.1', '20829.1', '20830.1', '20831.1', '20832.1', '20833.1', '20834.1', '20835.1', '20836.1', '20837.1', '20838.1', '20839.1', '20840.1', '20841.1', '20842.1', '20842.2', '20843.2', '20844.2', '20845.2', '20846.2', '20847.2', '20848.2', '20849.2', '20850.2', '20851.2', '20852.2', '20853.2', '20854.2', '20855.2', '20856.2', '20857.2', '20858.2', '20859.2', '20860.2', '20861.2', '20862.2', '20863.2', '20 [... truncated]> head(res,2)? dn obs choice? acid br date cdate situation mth year set 1? 4? 1? ? ? 0? LOSEC? 1? NA? ? NA? ? ? ? ? 487? NA? 1 2? 4? 1? ? ? 0 NEXIUM? 2? NA? ? NA? ? ? ? ? 487? NA? 1 Best wishes Graham -----Original Message----- From: arun [mailto:smartpink111 at yahoo.com] Sent: 07 April 2013 15:57 To: Leask, Graham Cc: R help Subject: Re: [R] mlogit error Hi, Try this: ?Mult3$mode.ids ?#[1] 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 #Levels: 1 2 3 4 5 6 I guess the key is to have equal number of alternatives. ?Mult3$mode.ids<- as.numeric(as.character(Mult3$mode.ids)) ?res<-mlogit.data(Mult3[-25,],shape="long",choice="CHOICE",alt.var="mode.ids",indivs="set3",chid.vars="obs") head(res,2) #??? dn obs choice br mth tcomp num prom1 prom2 prom3 prom4 prom5 tprom cLOSEC #1.1? 4?? 1????? 0? 1 487???? 0 642???? 0???? 0???? 0???? 0???? 0???? 0????? 0 #1.2? 4?? 1????? 0? 2 487???? 0 642???? 0???? 0???? 0???? 0???? 0???? 0????? 0 ? #? cNEXIUM cPARIET cPROTIUM cZANTAC cZOTON comp1 comp2 comp3 comp4 lpat zpat #1.1?????? 0?????? 0??????? 0?????? 0????? 0???? 0???? 0???? 0???? 0??? 0??? 0 #1.2?????? 0?????? 0??????? 0?????? 0????? 0???? 0???? 0???? 0???? 0??? 0??? 0 ?# ? doq part NurP PhP NoNon????????????? GPspec??????????????????? Newp #1.1? 78??? 3??? 0?? 0???? 1 No special interest Prefer tried and tested #1.2? 78??? 3??? 0?? 0???? 1 No special interest Prefer tried and tested ?# ????????????????????????????????????????? Guide??? SHA?????????? size exp #1.1 Often follow local guidelines/advice from PCT London 3 - 5 PARTNERS? 32 #1.2 Often follow local guidelines/advice from PCT London 3 - 5 PARTNERS? 32 ?# ????? ALL_P sex disp form set3 set set2 tag1 mode.ids indivs CHOICE #1.1 0.5295166?? 1??? 0??? 0??? 1?? 1??? 1??? 4??????? 1????? 1? FALSE #1.2 0.5295166?? 1??? 0??? 0??? 1?? 1??? 1??? 4??????? 2????? 1? FALSE A.K. ----- Original Message ----- From: "Leask, Graham" <g.leask at aston.ac.uk> To: "r-help at r-project.org" <r-help at r-project.org> Cc: Sent: Sunday, April 7, 2013 10:39 AM Subject: [R] mlogit error Dear List I am trying to fit a multinomial model using the mlogit package. Attempting to load the data into mlogit presents the following error. MLOG<-mlogit.data(Mult3,shape="long",choice="CHOICE",alt.var="mode.ids",indivs = "set3",chid.var = "obs") Error in `row.names<-.data.frame`(`*tmp*`, value = c("1.1", "1.2", "1.3",? : ? duplicate 'row.names' are not allowed In addition: Warning message: non-unique values when setting 'row.names': '1.1', '1.2', '1.3', '1.4', '1.5', '1.6', '10.1', '10.2', '10.3', '10.4', '10.5', '10.6', '100.1', '100.2', '100.3', '100.4', '100.5', '100.6', '1000.1', '1000.2', '1000.3', '1000.4', '1000.5', '1000.6', '1001.1', '1001.2', '1001.3', '1001.4', '1001.5', '1001.6', '1002.1', '1002.2', '1002.3', '1002.4', '1002.5', '1002.6', '1003.1', '1003.2', '1003.3', '1003.4', '1003.5', '1003.6', '1004.1', '1004.2', '1004.3', '1004.4', '1004.5', '1004.6', '1005.1', '1005.2', '1005.3', '1005.4', '1005.5', '1005.6', '1006.1', '1006.2', '1006.3', '1006.4', '1006.5', '1006.6', '1007.1', '1007.2', '1007.3', '1007.4', '1007.5', '1007.6', '1008.1', '1008.2', '1008.3', '1008.4', '1008.5', '1008.6', '1009.1', '1009.2', '1009.3', '1009.4', '1009.5', '1009.6', '101.1', '101.2', '101.3', '101.4', '101.5', '101.6', '1010.1', '1010.2', '1010.3', '1010.4', '1010.5', '1010.6', '1011.1', '1011.2', '1011.3', '1011.4', '1011.5', '1011.6',? '1012.1', '1012.2', '1012.3! ', '1012.4' [... truncated]>The code that I am running is as follows Mult3$mode.ids<-as.factor(Mult3$br) Mult3$indivs<-factor(Mult3$set3) Mult3$CHOICE<-factor(Mult3$choice,labels=c("no","yes")) MLOG<-mlogit.data(Mult3,shape="long",choice="CHOICE",alt.var="mode.ids",indivs = "set3",chid.var = "obs") My data is structured as follows dput(head(Mult3,25)) structure(list(dn = c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4), obs = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L), choice = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L), br = c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L), mth = c(487, 487, 487, 487, 487, 487, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 489, 489, 489, 489, 489, 489, 489), tcomp = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), num = c(642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642), prom1 = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0), prom2 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), prom3 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0), prom4 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), prom5 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), tprom = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0), cLOSEC = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cNEXIUM = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0), cPARIET = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cPROTIUM = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0 ), cZANTAC = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0), cZOTON = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0), comp1 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp2 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp3 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), comp4 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), lpat = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), zpat = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), doq = c(78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78), part = c(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3), NurP = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), PhP = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), NoNon = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ), GPspec = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Special interest GP", "No special interest"), class = "factor"), Newp = structure(c(4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("Always among first to try new product", "Like to try new regimens when available", "Wait to be confortable how the product works", "Prefer tried and tested", "Reluctant to try new products"), class = "factor"), ? ? Guide = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ? ? 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L ? ? ), .Label = c("Always follow local guidelines/advice from PCT", ? ? "Often follow local guidelines/advice from PCT", "Sometimes follow local guidelines/advice from PCT", ? ? "Rarely follow local guidelines/advice from PCT", "Prefer to make my own decision regardless of advice" ? ? ), class = "factor"), SHA = structure(c(9L, 9L, 9L, 9L, 9L, ? ? 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, ? ? 9L, 9L, 9L, 9L, 9L), .Label = c("North East", "North West", ? ? "Yorkshire & Humber", "West Midlands", "East Midlands", "East of England", ? ? "South West", "South Central", "London", "South East Coast", ? ? "Scotland", "Wales"), class = "factor"), size = structure(c(3L, ? ? 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, ? ? 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("SINGLE HANDED", ? ? "2 PARTNERS", "3 - 5 PARTNERS", "6 - 9 PARTNERS", "10 PLUS PARTNERS" ? ? ), class = "factor"), exp = c(32, 32, 32, 32, 32, 32, 32, ? ? 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, ? ? 32, 32, 32), ALL_P = c(0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642, 0.529516577720642, ? ? 0.529516577720642, 0.529516577720642), sex = structure(c(2L, ? ? 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ? ? 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("0", "1"), class = "factor"), ? ? disp = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ? ? ), .Label = c("0", "1"), class = "factor"), form = structure(c(1L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("0", "1"), class = "factor"), ? ? set3 = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ? ? 1, 1, 1, 1, 1, 1, 1, 1, 1), set = c(1, 1, 1, 1, 1, 1, 2, ? ? 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5), set2 = c(1, ? ? 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, ? ? 4, 4, 4, 4, 5), tag1 = c(4L, 4L, 4L, 4L, 4L, 0L, 4L, 4L, ? ? 0L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 0L, 4L, 4L, 0L, 4L, 4L, ? ? 4L, 4L), mode.ids = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 1L, ? ? 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, ? ? 5L, 6L, 1L), .Label = c("1", "2", "3", "4", "5", "6"), class = "factor"), ? ? indivs = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, ? ? 1L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8", "9", ? ? "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", ? ? "20", "21", "23", "25", "26", "27", "28", "29", "30", "31", ? ? "32", "33", "34", "35", "36", "37", "38", "40", "41", "42", ? ? "43", "44", "45", "47", "48", "49", "50", "51", "52", "53", ? ? "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", ? ? "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", ? ? "74", "75", "76", "77", "78", "79", "80", "82", "83", "84", ? ? "85", "86", "87", "88", "89", "90", "91", "92", "93"), class = "factor"), ? ? CHOICE = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, ? ? 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, ? ? 1L), .Label = c("no", "yes"), class = "factor")), .Names = c("dn", "obs", "choice", "br", "mth", "tcomp", "num", "prom1", "prom2", "prom3", "prom4", "prom5", "tprom", "cLOSEC", "cNEXIUM", "cPARIET", "cPROTIUM", "cZANTAC", "cZOTON", "comp1", "comp2", "comp3", "comp4", "lpat", "zpat", "doq", "part", "NurP", "PhP", "NoNon", "GPspec", "Newp", "Guide", "SHA", "size", "exp", "ALL_P", "sex", "disp", "form", "set3", "set", "set2", "tag1", "mode.ids", "indivs", "CHOICE"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25"), class = "data.frame") I have noticed several previous posts regarding this error but no resolution has been posted to my knowledge. Any help in resolving this would be appreciated. Best wishes Graham ??? [[alternative HTML version deleted]] ______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Dear Listmembers Thank you for your help in resolving the duplicate row.names error. The solution was very straightforward to ensure that the choice set is completely balanced. Once that was achieved the program worked fine. Kind Regards Graham