Jorge Cimentada
2015-Dec-02 16:35 UTC
[R] Error in model.frame.default… variable lengths differ (Without NA's)
Hello everyone, I'm running an ordinal logistic and I keep getting this error: Error in model.frame.default(formula = eduattain ~ dadedu, data workdataset, : variable lengths differ (found for '(weights)') I looked at several similar questions on the internet and ended up deleting all the NA's from all the variables in the model prior to running the model. I checked this before(where the length differed) and after deleting the NA's(where the length was the same) A similar question <http://t.sidekickopen29.com/e1t/c/5/f18dQhb0S7lC8dDMPbW2n0x6l2B9nMJN7t5XX4RYygTW5v0Dpn5wvpr8W4X9Hq256dwC8d2Ntnd02?t=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F29220727%2Ferror-in-model-frame-default-variable-lengths-differ-but-no-nas-in-data&si=4832790679388160&pi=5c2682a6-6cfb-4c8b-98c9-ca8956c3fe4c> posed a similar problem(same error, no NA's) but no answer was given due to the problem not being reproducible. ------------------------------ Here is a a reproduction of the problem: here I recoded empty rows into NA's thinking that empty rows might have something to do with this: require(MASS) spain <- read.csv("http://vs-web-fs-1.oecd.org/piaac/puf-data/CSV/Prgespp1.csv")[,c("B_Q01a","J_Q07b","SPFWT0")] workdataset <- spain workdataset$eduattain <- workdataset$B_Q01a workdataset$dadedu <- workdataset$J_Q07b # Model ordinalmodel <- polr(eduattain ~ dadedu, data = workdataset, weights "SPFWT0", Hess = TRUE) ## Recoding some empty rows into NA's workdataset$eduattain[workdataset$B_Q01a == ""] <- NA workdataset$dadedu[workdataset$J_Q07b == ""] <- NA workdataset <- workdataset[!is.na(workdataset$dadedu) & !is.na(workdataset$eduattain),] length(workdataset$SPFWT0[!is.na(workdataset$eduattain)]) length(workdataset$SPFWT0[!is.na(workdataset$dadedu)]) #Problem persists ordinalmodel <- polr(eduattain ~ dadedu, data = workdataset, weights "SPFWT0", Hess = TRUE) *Note: This study has over 10 datasets for different countries and regardless of the dataset I use the problem persists.* I've tried all sorts of different things to fix this(I thought it was the way I recoded the dependent and independent variables, I thought it was because of empty rows). If I exclude the weight variable, the model works just fine. I tried looking at the length of the weight when the two different variables are not NA's and the length is the same. Please, any help is appreciated. *Jorge C.* [[alternative HTML version deleted]]
William Dunlap
2015-Dec-02 17:54 UTC
[R] Error in model.frame.default… variable lengths differ (Without NA's)
In your> ordinalmodel <- polr(eduattain ~ dadedu, data = workdataset, weights > "SPFWT0", Hess = TRUE)take the quotation marks off of SPFWT0. Like the subset argument, weights is a literal expression, evaluated in the context of the data argument, not a character string naming a column in the data argument. Bill Dunlap TIBCO Software wdunlap tibco.com On Wed, Dec 2, 2015 at 8:35 AM, Jorge Cimentada <cimentadaj at gmail.com> wrote:> Hello everyone, > > I'm running an ordinal logistic and I keep getting this error: > > Error in model.frame.default(formula = eduattain ~ dadedu, data > workdataset, : > variable lengths differ (found for '(weights)') > > I looked at several similar questions on the internet and ended up deleting > all the NA's from all the variables in the model prior to running the > model. I checked this before(where the length differed) and after deleting > the NA's(where the length was the same) > > A similar question > <http://t.sidekickopen29.com/e1t/c/5/f18dQhb0S7lC8dDMPbW2n0x6l2B9nMJN7t5XX4RYygTW5v0Dpn5wvpr8W4X9Hq256dwC8d2Ntnd02?t=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F29220727%2Ferror-in-model-frame-default-variable-lengths-differ-but-no-nas-in-data&si=4832790679388160&pi=5c2682a6-6cfb-4c8b-98c9-ca8956c3fe4c> > posed > a similar problem(same error, no NA's) but no answer was given due to the > problem not being reproducible. > ------------------------------ > > Here is a a reproduction of the problem: here I recoded empty rows into > NA's thinking that empty rows might have something to do with this: > > require(MASS) > > spain <- read.csv("http://vs-web-fs-1.oecd.org/piaac/puf-data/CSV/Prgespp1.csv")[,c("B_Q01a","J_Q07b","SPFWT0")] > workdataset <- spain > workdataset$eduattain <- workdataset$B_Q01a > workdataset$dadedu <- workdataset$J_Q07b > # Model > ordinalmodel <- polr(eduattain ~ dadedu, data = workdataset, weights > "SPFWT0", Hess = TRUE) > ## Recoding some empty rows into NA's > workdataset$eduattain[workdataset$B_Q01a == ""] <- NA > workdataset$dadedu[workdataset$J_Q07b == ""] <- NA > workdataset <- workdataset[!is.na(workdataset$dadedu) & > !is.na(workdataset$eduattain),] > length(workdataset$SPFWT0[!is.na(workdataset$eduattain)]) > length(workdataset$SPFWT0[!is.na(workdataset$dadedu)]) > #Problem persists > ordinalmodel <- polr(eduattain ~ dadedu, data = workdataset, weights > "SPFWT0", Hess = TRUE) > > *Note: This study has over 10 datasets for different countries and > regardless of the dataset I use the problem persists.* > I've tried all sorts of different things to fix this(I thought it was the > way I recoded the dependent and independent variables, I thought it was > because of empty rows). If I exclude the weight variable, the model works > just fine. I tried looking at the length of the weight when the two > different variables are not NA's and the length is the same. > > Please, any help is appreciated. > > *Jorge C.* > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.