It's nice to cc the list for archival reasons -- it also usually gets you a faster response as more folks can see how the thread develops.
The problem is that the colnames aren't ctually depy and indx: they are depy.w, depy.h, etc. If you want to model, you need to use those as is: e.g., with your code eqn <- structure(list(depy.w = c(63L, 145L, 104L, 109L, 221L, 110L, 194L, 120L, 210L, 243L, 163L, 93L, 167L, 232L, 112L, 185L, 103L, 202L, 203L, 207L, 239L, 109L, 112L, 176L, 126L, 145L, 125L, 191L, 110L, 92L), depy.h = c(55L, 52L, 32L, 69L, 61L, 40L, 41L, 76L, 61L, 101L, 62L, 55L, 61L, 65L, 52L, 52L, 43L, 87L, 57L, 37L, 74L, 44L, 45L, 52L, 54L, 51L, 66L, 53L, 43L, 36L), depy.d = c(1L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L), depy.s = c(0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), indx.a = c(44L, 33L, 68L, 94L, 72L, 48L, 85L, 19L, 41L, 57L, 64L, 27L, 64L, 32L, 31L, 88L, 80L, 70L, 68L, 58L, 42L, 87L, 69L, 52L, 45L, 25L, 66L, 80L, 17L, 70L), indx.i = c(37200L, 69300L, 56900L, 44300L, 79800L, 17600L, 58100L, 76700L, 37600L, 40800L, 400L, 33400L, 6000L, 7400L, 94000L, 84200L, 0L, 0L, 43300L, 0L, 68600L, 47300L, 16100L, 95900L, 69200L, 12200L, 7500L, 70600L, 11400L, 0L), indx.r = c(4L, 4L, 3L, 6L, 6L, 5L, 4L, 3L, 1L, 5L, 3L, 3L, 5L, 1L, 6L, 4L, 2L, 1L, 4L, 1L, 4L, 6L, 1L, 6L, 4L, 2L, 2L, 5L, 3L, 4L), indx.x = c(0L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 2L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L)), .Names = c("depy.w", "depy.h", "depy.d", "depy.s", "indx.a", "indx.i", "indx.r", "indx.x" ), row.names = c(NA, 30L), class = "data.frame") library(pls) apls <- plsr(depy.w + depy.h + depy.d + depy.s ~ ., data=eqn) # Works like a charm I don't believe there's a way to do wildcard names in general (something like depy.*, but I'd welcome correction) but you can save some key strokes by using the "." term to mean "everything else I haven't already used" Hope this helps, Michael On Sun, Mar 4, 2012 at 1:30 PM, Chris Westland <westl...@uic.edu> wrote: > Thanks Michael. I had tried to drop the I(as.matrix(...)) conversions, and > fiddled with a number of other permutations of code ... I still can't seem > to get it right. > > The col names appear to be depy and indx ... here is the output (and the > rows are just line numbers) > > > >> colnames(eqn) > > [1] "depy.w" "depy.h" "depy.d" "depy.s" "indx.a" "indx.i" "indx.r" > "indx.x"row> > > > >> rownames(eqn) > > [1] > "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" "26" "27" "28" > > [29] "29" "30" "31"….etc. > > > > > > > Here is the dput(eqn) and showData for the file 'eqn': > > > >> dput(head(eqn, 30)) > > structure(list(depy.w = c(63L, 145L, 104L, 109L, 221L, 110L, > > 194L, 120L, 210L, 243L, 163L, 93L, 167L, 232L, 112L, 185L, 103L, > > 202L, 203L, 207L, 239L, 109L, 112L, 176L, 126L, 145L, 125L, 191L, > > 110L, 92L), depy.h = c(55L, 52L, 32L, 69L, 61L, 40L, 41L, 76L, > > 61L, 101L, 62L, 55L, 61L, 65L, 52L, 52L, 43L, 87L, 57L, 37L, > > 74L, 44L, 45L, 52L, 54L, 51L, 66L, 53L, 43L, 36L), depy.d = c(1L, > > 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, > > 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L), depy.s = c(0L, > > 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, > > 1L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), indx.a = c(44L, > > 33L, 68L, 94L, 72L, 48L, 85L, 19L, 41L, 57L, 64L, 27L, 64L, 32L, > > 31L, 88L, 80L, 70L, 68L, 58L, 42L, 87L, 69L, 52L, 45L, 25L, 66L, > > 80L, 17L, 70L), indx.i = c(37200L, 69300L, 56900L, 44300L, 79800L, > > 17600L, 58100L, 76700L, 37600L, 40800L, 400L, 33400L, 6000L, > > 7400L, 94000L, 84200L, 0L, 0L, 43300L, 0L, 68600L, 47300L, 16100L, > > 95900L, 69200L, 12200L, 7500L, 70600L, 11400L, 0L), indx.r = c(4L, > > 4L, 3L, 6L, 6L, 5L, 4L, 3L, 1L, 5L, 3L, 3L, 5L, 1L, 6L, 4L, 2L, > > 1L, 4L, 1L, 4L, 6L, 1L, 6L, 4L, 2L, 2L, 5L, 3L, 4L), indx.x = c(0L, > > 1L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 2L, 0L, 0L, 1L, 0L, > > 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L)), .Names = c("depy.w", > > "depy.h", "depy.d", "depy.s", "indx.a", "indx.i", "indx.r", "indx.x" > > ), row.names = c(NA, 30L), class = "data.frame") > > > > > > > >> showData(eqn) > > > > depy.w depy.h depy.d depy.s indx.a indx.i indx.r indx.x > > 63 55 1 0 44 37200 4 0 > > 145 52 1 1 33 69300 4 1 > > 104 32 0 1 68 56900 3 1 > > 109 69 1 1 94 44300 6 1 > > 221 61 0 1 72 79800 6 0 > > 110 40 1 1 48 17600 5 1 > > 194 41 0 0 85 58100 4 0 > > 120 76 1 1 19 76700 3 0 > > 210 61 0 0 41 37600 1 0 ... etc. > > > > > Initially, I had input a file 'pls' with the script: > > > dep <- pls[,1:4] > > ind <- pls[,5:8] > > eqn <- data.frame(depy = dep, indx = ind) > > apls <- plsr(depy ~ indx, data=eqn) > > > .... and this gives me [7] ERROR: object 'depy' not found > > > Note that the original input comes from a matrix 'pls' and my intent is to > convert this to data.frames that the plsr package can parse ... a dput(pls) > gives me ... > > > > .... lots and lots of leading line information ... 0L, 0L, 1L, 2L, 0L, > 0L, 1L, 1L, 0L, 0L, 0L, 2L, 1L, 0L, 1L, > > 2L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, > > 0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, > > 1L, 0L, 1L, 1L, 1L, 1L)), .Names = c("w", "h", "d", "s", > > "a", "i", "r", "x"), class = "data.frame", row.names = c(NA, > > -10000L)) > > > > If you have any other suggestions concerning how I might fiddle the files to > get them into a format that PLSR package would like, that would be great > > > Chris Westland > > > > On Sat, Mar 3, 2012 at 8:17 PM, R. Michael Weylandt > <michael.weyla...@gmail.com> wrote: >> >> Can you post dput(head(eqn, 30)) so we can take a look at your data? >> It's something of a cryptic error and that would go a long way in >> helping us help you. >> >> Without that though, I'm not sure you need the I(as.matrix.(dep)) and >> I(as.matrix(ind)), I would imagine (untested) that eqn <- >> data.frame(depy = dep, indx = ind) would work (probably better as I() >> changes things just a little). >> >> I have a hunch that the colnames of eqn are not actually depy and indx >> and that's what ultimately leads to the error. Can you look at >> colnames(eqn) and use those exactly in the formula to plsr? That might >> fix it. >> >> Michael >> >> >> >> On Sat, Mar 3, 2012 at 5:01 PM, westland <westl...@uic.edu> wrote: >> > I am still/again having trouble getting PLSR to recognize the input data >> > frames. Here is what I have done: >> > >> > I read in an 10000 x 8 table of data to 'pls' >> > >> > assign the first four columns to matrix 'dep' and the second four to >> > matrix >> > 'ind' with the following commands: >> > >> > dep <- pls[,1:4] >> > ind <- pls[,5:8] >> > >> > I create the data.frame 'eqn' : >> > >> > eqn <- data.frame(depy = I(as.matrix(dep)), indx = I(as.matrix(ind))) >> > >> > And run the PLSR package >> > >> > apls <- plsr(depy ~ indx, data=eqn) >> > >> > I seem to be getting either one of two error messages: >> > >> > [12] ERROR: >> > invalid type (list) for variable 'dep' >> > [13] ERROR: >> > object of type 'closure' is not subsettable >> > >> > I'm sure now that this is a problem in my creation of data.frames, but >> > can't >> > seem to find anything that describes the problem >> > >> > >> > ----- >> > J. Christopher Westland >> > Professor, Information & Decision Sciences, University of Illinois - >> > Chicago >> > 601 S. Morgan Street (UH2400) Chicago, IL 60607-7124 >> > Telephone +1.312.860.0587 >> > Google Voice +1.209.757.8849 >> > westl...@uic.edu >> > http://uic.edu/~westland >> > -- >> > View this message in context: >> > http://r.789695.n4.nabble.com/Dataframes-in-PLS-package-tp4405798p4442436.html >> > Sent from the R help mailing list archive at Nabble.com. >> > >> > ______________________________________________ >> > R-help@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. > > > > > -- > J. Christopher Westland > Professor, Information & Decision Sciences, University of Illinois - Chicago > 601 S. Morgan Street (UH2400) Chicago, IL 60607-7124 > Telephone +1.312.860.0587 > Google Voice +1.209.757.8849 > westl...@uic.edu > http://uic.edu/~westland > > ______________________________________________ R-help@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.