Keith Schnakenberg

2008-Sep-28 23:45 UTC

### [R] reshape package does not recognize second id variable

I am trying to use the reshape package for the first time. I have two waves of a survey, so the id variables include a subject identification number and a variable denoting the wave of the survey. I used the following arguments: library(reshape) svy.melt <- melt(svy, id=c("id", "WAVE")) svy.wide <- cast(svy.melt, id ~ WAVE + ...) and got the following error: "Error in check_formula(formula, varnames) : Formula contains variables not in list of known variables" I check to make sure variable name is right, and it is: summary(svy$WAVE) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.00 1.00 1.00 1.47 2.00 2.00 ________________________ I use the same code on some fake data with different results: id <- c(seq(1, 500, 1), seq(1, 500, 1)) x1 <- rnorm(1000) x2 <- rnorm(1000) x3 <- rnorm(1000) x4 <- rnorm(1000) x5 <- rnorm(1000) x6 <- rnorm(1000) x7 <- rnorm(1000) x8 <- rnorm(1000) x9 <- rnorm(1000) x10 <- rnorm(1000) wave <- c(replicate(500, 1), replicate(500, 2)) fake <- as.data.frame(cbind(id, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, wave)) names(fake) <- c("id", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "wave") fake.melt <- melt(fake, id=c("id", "wave")) fake.wide <- cast(fake.melt, id ~ wave + ...) This works quite nicely, and the resulting dataset looks like it should. Theories? Thanks!

hadley wickham

2008-Sep-29 00:55 UTC

### [R] reshape package does not recognize second id variable

On Sun, Sep 28, 2008 at 6:45 PM, Keith Schnakenberg <keith.schnakenberg at gmail.com> wrote:> I am trying to use the reshape package for the first time. I have two waves > of a survey, so the id variables include a subject identification number and > a variable denoting the wave of the survey. > > I used the following arguments: > > library(reshape) > svy.melt <- melt(svy, id=c("id", "WAVE")) > svy.wide <- cast(svy.melt, id ~ WAVE + ...) > > and got the following error: > > "Error in check_formula(formula, varnames) : > Formula contains variables not in list of known variables" > > I check to make sure variable name is right, and it is: > > summary(svy$WAVE) > Min. 1st Qu. Median Mean 3rd Qu. Max. > 1.00 1.00 1.00 1.47 2.00 2.00What does the output of str(svy) and str(svy.melt) look like? Hadley -- http://had.co.nz/