Hello, I am new to R. I have multidimensional array (379,2,3) and I need to create a series of linear regressions (379 to be exact) I have the array stored properly I believe, but I can not use the lm(myarray[1,1,1:3]~myarray[1,2,1:3]) I have checked to make sure they are exactly the same length. I have also tried endlessly to convert the subset of the array back into a vector. any help would be appreciated. -- View this message in context: http://r.789695.n4.nabble.com/Error-invalid-type-list-for-variable-when-using-lm-tp3045462p4106669.html Sent from the R help mailing list archive at Nabble.com.
Error: invalid type(list) for variable when using lm()
6 messages · Dhaynes, Milan Bouchet-Valat, David Winsemius +1 more
Le vendredi 25 novembre 2011 ? 00:02 -0800, Dhaynes a ?crit :
Hello, I am new to R. I have multidimensional array (379,2,3) and I need to create a series of linear regressions (379 to be exact) I have the array stored properly I believe, but I can not use the lm(myarray[1,1,1:3]~myarray[1,2,1:3]) I have checked to make sure they are exactly the same length. I have also tried endlessly to convert the subset of the array back into a vector. any help would be appreciated.
The 'formula' argument of lm doesn't take actual values, but variable names. So you need to create vectors containing your data, or pass a data frame with these vectors are columns. So, going the latter way : df <- data.frame(a=myarray[1,1,1:3], b=myarray[1,2,1:3]) lm(a ~ b, data=df) or in one step lm(a ~ b, data=data.frame(a=myarray[1,1,1:3], b=myarray[1,2,1:3])) Regards
Inline below. -- Bert
On Fri, Nov 25, 2011 at 2:31 AM, Milan Bouchet-Valat <nalimilan at club.fr> wrote:
Le vendredi 25 novembre 2011 ? 00:02 -0800, Dhaynes a ?crit :
Hello, I am new to R. I have multidimensional array (379,2,3) and I need to create a series of linear regressions (379 to be exact) I have the array stored properly I believe, but I can not use the lm(myarray[1,1,1:3]~myarray[1,2,1:3]) I have checked to make sure they are exactly the same length. I have also tried endlessly to convert the subset of the array back into a vector.
?as.vector Actually an array **is** a vector -- but with an additional "dim" attribute. Try:
str(x)
any help would be appreciated.
1) Read relevant portions of R docs, like ?array and perhaps "An Introduction to R." 2) Read and follow the posting guide. In particular, give us a toy example with the code you used to construct your array. It's difficult to diagnose the source of engine failure without the car. 3) See my comment below.
The 'formula' argument of lm doesn't take actual values, but variable names. So you need to create vectors containing your data, or pass a
--This is patently false. Please check before giving obviously wrong advice:
x <- array(rnorm(150), dim= c(10,5,3)) lm(x[,3,2] ~x[,1,1])
Call:
lm(formula = x[, 3, 2] ~ x[, 1, 1])
Coefficients:
(Intercept) x[, 1, 1]
-0.1247 0.1171
data frame with these vectors are columns. So, going the latter way : df <- data.frame(a=myarray[1,1,1:3], b=myarray[1,2,1:3]) lm(a ~ b, data=df) or in one step lm(a ~ b, data=data.frame(a=myarray[1,1,1:3], b=myarray[1,2,1:3])) Regards
______________________________________________ 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.
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20111125/dfda88e4/attachment.pl>
On Nov 25, 2011, at 11:41 AM, Dhaynes wrote:
Ok let me clarify I have multidimensional array and I need to convert it to a singular dimensional array. The multidimensional array is 359 rows, 2 cols, 3 deep I need to run a regression model mymatrix[1,1,1:3] and mymatrix [1,2,1:3] This is my current error, which indicates I have the incorrect list type (I have tried functions as.list, as.vector, as.vector) lm(formula = mymatrix[1,1,1:3]~mymatrix[1,2,1:3] ) Error in model.frame.default(formula = mymatrix[1, 1, 1:3] ~ mymatrix[1, : invalid type (list) for variable 'mymatrix[1, 1, 1:3]' I was unsuccessful at attempting the "str(mymatrix[1,1,1:3]" -- Argument not valid model The data.frame function did not create the objects <- data.frame(a=mymatrix[1,1,1:3], b=mymatrix[1,2,1:3])
lm(a~b, data=df)
Error in eval(expr, envir, enclos) : object 'a' not found Here is my code con <- dbConnect(PostgreSQL(), user="postgres", password="antione",dbname="Education") rs <- dbGetQuery(con, "SELECT (GRADE1[10]) As grade1_t1, (GRADE1[11]) As grade1_t2, (GRADE1[12]) As grade1_t3, (GRADE2[11]) As grade2_t2, (GRADE2[12]) As grade2_t3, (GRADE2[13]) As grade2_t4 FROM attending") myval <- rs attach(myval)
Generally a bad idea to attach objects. It's a sin that is committed by several authors but it generally gets in the way of safe code writing. Better to use with().
names(myval) dim(myval) mymatrix <- array(myval, c(379,2,3)) mymatrix[,1,1] <- grade1_t1 mymatrix[,1,2] <- grade1_t2 mymatrix[,1,3] <- grade1_t3 mymatrix[,2,1] <- grade2_t2 mymatrix[,2,2] <- grade2_t3 mymatrix[,2,3] <- grade2_t4
But what are these various grade-named objects? Are you sure you didn't coerce the matrix to character mode? What is str(mymatrix) after this?
David. > > I can do this > plot(mymatrix[1,1,1:3],mymatrix[1,2,1:3]) > > On Fri, Nov 25, 2011 at 6:06 AM, Bert Gunter [via R] < > ml-node+s789695n4107159h96 at n4.nabble.com> wrote: > >> Inline below. >> >> -- Bert >> >> On Fri, Nov 25, 2011 at 2:31 AM, Milan Bouchet-Valat <[hidden >> email]<http://user/SendEmail.jtp?type=node&node=4107159&i=0>> >> wrote: >> >>> Le vendredi 25 novembre 2011 ? 00:02 -0800, Dhaynes a ?crit : >>>> Hello, >>>> >>>> I am new to R. >>>> I have multidimensional array (379,2,3) and I need to create a >>>> series >> of >>>> linear regressions (379 to be exact) >>>> I have the array stored properly I believe, but I can not use the >>>> lm(myarray[1,1,1:3]~myarray[1,2,1:3]) >>>> I have checked to make sure they are exactly the same length. >>>> I have also tried endlessly to convert the subset of the array back >> into a >>>> vector. >> >> ?as.vector >> Actually an array **is** a vector -- but with an additional "dim" >> attribute. Try: >>> str(x) >> >> >>>> >>>> any help would be appreciated. >> >> 1) Read relevant portions of R docs, like ?array and perhaps "An >> Introduction to R." >> >> 2) Read and follow the posting guide. In particular, give us a toy >> example with the code you used to construct your array. It's >> difficult >> to diagnose the source of engine failure without the car. >> >> 3) See my comment below. >> >>> The 'formula' argument of lm doesn't take actual values, but >>> variable >>> names. So you need to create vectors containing your data, or pass a >> >> --This is patently false. Please check before giving obviously wrong >> advice: >> >>> x <- array(rnorm(150), dim= c(10,5,3)) >>> lm(x[,3,2] ~x[,1,1]) >> >> Call: >> lm(formula = x[, 3, 2] ~ x[, 1, 1]) >> >> Coefficients: >> (Intercept) x[, 1, 1] >> -0.1247 0.1171 >> >> >> >> >> >>> data frame with these vectors are columns. So, going the latter >>> way : >>> df <- data.frame(a=myarray[1,1,1:3], b=myarray[1,2,1:3]) >>> lm(a ~ b, data=df) >>> >>> or in one step >>> lm(a ~ b, data=data.frame(a=myarray[1,1,1:3], b=myarray[1,2,1:3])) >>> >>> >>> Regards >>> >>> ______________________________________________ >>> [hidden email] <http://user/SendEmail.jtp? >>> type=node&node=4107159&i=1>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. >>> >> >> >> >> -- >> >> Bert Gunter >> Genentech Nonclinical Biostatistics >> >> Internal Contact Info: >> Phone: 467-7374 >> Website: >> >> http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm >> >> ______________________________________________ >> [hidden email] <http://user/SendEmail.jtp? >> type=node&node=4107159&i=2>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. >> >> >> ------------------------------ >> If you reply to this email, your message will be added to the >> discussion >> below: >> >> http://r.789695.n4.nabble.com/Error-invalid-type-list-for-variable-when-using-lm-tp3045462p4107159.html >> To unsubscribe from Error: invalid type(list) for variable when using >> lm(), click here<http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3045462&code=aGF5bmVzZDJAZ21haWwuY29tfDMwNDU0NjJ8MjA1OTM1OTY5 >> > >> . >> NAML<http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.InstantMailNamespace&breadcrumbs=instant+emails%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml >> > >> > > > -- > View this message in context: http://r.789695.n4.nabble.com/Error-invalid-type-list-for-variable-when-using-lm-tp3045462p4107912.html > Sent from the R help mailing list archive at Nabble.com. > [[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. David Winsemius, MD West Hartford, CT
Inline below. HOWEVER -- my comments are tentative and need verification by someone more expert because: 1. This is not a reproducible example, so I have no idea what really happening 2. I don't know what your dbQuery command does.Do you? But see below for my guesses -- Bert On Fri, Nov 25, 2011 at 10:10 AM, David Winsemius
<dwinsemius at comcast.net> wrote:
On Nov 25, 2011, at 11:41 AM, Dhaynes wrote:
Ok let me clarify I have multidimensional array and I need to convert it to a singular dimensional array. The multidimensional array is 359 rows, 2 cols, 3 deep I need to run a regression model mymatrix[1,1,1:3] and mymatrix [1,2,1:3] This is my current error, which indicates I have the incorrect list type (I have tried functions as.list, as.vector, as.vector) lm(formula = mymatrix[1,1,1:3]~mymatrix[1,2,1:3] ) Error in model.frame.default(formula = mymatrix[1, 1, 1:3] ~ mymatrix[1, ?: ?invalid type (list) for variable 'mymatrix[1, 1, 1:3]' I was unsuccessful at attempting the "str(mymatrix[1,1,1:3]" --Argument not valid model
It should be str(mymatrix)
The data.frame function did not create the objects <- data.frame(a=mymatrix[1,1,1:3], b=mymatrix[1,2,1:3])
LHS is missing, but presumably just a typo here. Note that a and b would contain only 3 values each, presumably not what you want. And, as I said in my earlier message, you don't need to do this anyway.
lm(a~b, data=df)
Error in eval(expr, envir, enclos) : object 'a' not found Here is my code con <- dbConnect(PostgreSQL(), user="postgres", password="antione",dbname="Education") rs <- dbGetQuery(con, "SELECT (GRADE1[10]) As grade1_t1, (GRADE1[11]) As grade1_t2, (GRADE1[12]) As grade1_t3, (GRADE2[11]) As grade2_t2, (GRADE2[12]) As grade2_t3, (GRADE2[13]) As grade2_t4 FROM attending")
I think the problem is the structure of rs. Is it a data.frame or a list or what? What does str(rs) give you? I think you need to **carefully** read ?dbGetQuery
myval <- rs attach(myval)
Generally a bad idea to attach objects. It's a sin that is committed by several authors but it generally gets in the way of safe code writing. Better to use with().
-- I second this.
names(myval) dim(myval) mymatrix <- array(myval, c(379,2,3)) mymatrix[,1,1] <- grade1_t1 mymatrix[,1,2] <- grade1_t2 mymatrix[,1,3] <- grade1_t3 mymatrix[,2,1] <- grade2_t2 mymatrix[,2,2] <- grade2_t3 mymatrix[,2,3] <- grade2_t4
But what are these various grade-named objects? Are you sure you didn't coerce the matrix to character mode? What is str(mymatrix) after this? -- David.
I can do this plot(mymatrix[1,1,1:3],mymatrix[1,2,1:3]) On Fri, Nov 25, 2011 at 6:06 AM, Bert Gunter [via R] < ml-node+s789695n4107159h96 at n4.nabble.com> wrote:
Inline below. -- Bert On Fri, Nov 25, 2011 at 2:31 AM, Milan Bouchet-Valat <[hidden email]<http://user/SendEmail.jtp?type=node&node=4107159&i=0>> wrote:
Le vendredi 25 novembre 2011 ? 00:02 -0800, Dhaynes a ?crit :
Hello, I am new to R. I have multidimensional array (379,2,3) and I need to create a series
of
linear regressions (379 to be exact) I have the array stored properly I believe, but I can not use the lm(myarray[1,1,1:3]~myarray[1,2,1:3]) I have checked to make sure they are exactly the same length. I have also tried endlessly to convert the subset of the array back
into a
vector.
?as.vector Actually an array **is** a vector -- but with an additional "dim" attribute. Try:
str(x)
any help would be appreciated.
1) Read relevant portions of R docs, like ?array and perhaps "An Introduction to R." 2) ?Read and follow the posting guide. In particular, give us a toy example with the code you used to construct your array. It's difficult to diagnose the source of engine failure without the car. 3) See my comment below.
The 'formula' argument of lm doesn't take actual values, but variable names. So you need to create vectors containing your data, or pass a
--This is patently false. Please check before giving obviously wrong advice:
x <- array(rnorm(150), dim= c(10,5,3)) lm(x[,3,2] ~x[,1,1])
Call: lm(formula = x[, 3, 2] ~ x[, 1, 1]) Coefficients: (Intercept) ? ?x[, 1, 1] ? -0.1247 ? ? ? 0.1171
data frame with these vectors are columns. So, going the latter way : df <- data.frame(a=myarray[1,1,1:3], b=myarray[1,2,1:3]) lm(a ~ b, data=df) or in one step lm(a ~ b, data=data.frame(a=myarray[1,1,1:3], b=myarray[1,2,1:3])) Regards
______________________________________________ [hidden email] <http://user/SendEmail.jtp?type=node&node=4107159&i=1>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. -- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm ______________________________________________ [hidden email] <http://user/SendEmail.jtp?type=node&node=4107159&i=2>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. ------------------------------ If you reply to this email, your message will be added to the discussion below: http://r.789695.n4.nabble.com/Error-invalid-type-list-for-variable-when-using-lm-tp3045462p4107159.html To unsubscribe from Error: invalid type(list) for variable when using lm(), click here<http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3045462&code=aGF5bmVzZDJAZ21haWwuY29tfDMwNDU0NjJ8MjA1OTM1OTY5> . NAML<http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.InstantMailNamespace&breadcrumbs=instant+emails%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
-- View this message in context: http://r.789695.n4.nabble.com/Error-invalid-type-list-for-variable-when-using-lm-tp3045462p4107912.html Sent from the R help mailing list archive at Nabble.com. ? ? ? ?[[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.
David Winsemius, MD West Hartford, CT
______________________________________________ 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.
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm