[R] Error in model.frame.default… variable lengths differ (Without NA's)
William Dunlap
wdunlap at tibco.com
Wed Dec 2 18:54:59 CET 2015
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.
More information about the R-help
mailing list