[R] do glm with two data sets

Hu, Ying (NIH/NCI) yhu at mail.nih.gov
Thu Aug 18 16:38:34 CEST 2005


Thanks for your help.

# read the two data sets
e <- as.matrix(read.table("file1.txt", header=TRUE,row.names=1))
g <- as.matrix(read.table("file2.txt", header=TRUE,row.names=1))

# solution 
d1<-data.frame(g[1,], e[1,])
fit<-glm(e[1,] ~ g[1,], data=d1)
summary(fit)

I am not sure that is the best solution.

Thanks again,

Ying
 

-----Original Message-----
From: Gavin Simpson [mailto:gavin.simpson at ucl.ac.uk] 
Sent: Wednesday, August 17, 2005 7:01 PM
To: Sundar Dorai-Raj
Cc: Hu, Ying (NIH/NCI); r-help at stat.math.ethz.ch
Subject: Re: [R] do glm with two data sets

On Wed, 2005-08-17 at 17:22 -0500, Sundar Dorai-Raj wrote:
> 
> Hu, Ying (NIH/NCI) wrote:
> > I have two data sets:
> > File1.txt: 
> > Name id1   id2   id3   ...
> > N1    0     1     0     ...
> > N2    0     1     1     ...
> > N3    1     1     -1    ...
> > ...
> >  
> > File2.txt:
> > Group id1       id2       id3       ...
> > G1       1.22     1.34     2.44     ...
> > G2       2.33     2.56     2.56     ...
> > G3       1.56     1.99     1.46     ...
> > ...
> > I like to do:
> > x1<-c(0,1,0,...)
> > y1<-c(1.22,1.34, 2.44, ...)
> > z1<-data.frame(x,y)
> > summary(glm(y1~x1,data=z1)
> >  
> > But I do the same thing by inputting the data sets from the two files
> > e <- read.table("file1.txt", header=TRUE,row.names=1)
> > g <- read.table("file2.txt", header=TRUE,row.names=1)
> > e1<-exp[1,]
> > g1<-geno[1,]
> > d1<-data.frame(g, e)
> > summary(glm(e1 ~ g1, data=d1))
> >  
> > the error message is 
> > Error in model.frame(formula, rownames, variables, varnames, extras,
> > extranames,  : 
> >         invalid variable type
> > Execution halted
> >  
> > Thanks in advance,
> >  
> > Ying

Hi Ying,

That error message is likely caused by having a data.frame on the right
hand side (rhs) of the formula. You can't have a data.frame on the rhs
of a formula and g1 is still a data frame even if you only choose the
first row, e.g.:

dat <- as.data.frame(matrix(100, 10, 10))
class(dat[1, ])
[1] "data.frame"

You could try:

glm(e1 ~ ., data=g1[1, ])

and see if that works, but as Sundar notes, your post is a little
difficult to follow, so this may not do what you were trying to achieve.

HTH

Gav

> 
> You have several inconsistencies in your example, so it will be 
> difficult to figure out what you are trying to accomplish.
> 
>  > e <- read.table("file1.txt", header=TRUE,row.names=1)
>  > g <- read.table("file2.txt", header=TRUE,row.names=1)
>  > e1<-exp[1,]
> 
> What's "exp"? Also it's dangerous to use an R function as a variable 
> name. Most of the time R can tell the difference, but in some cases it 
> cannot.
> 
>  > g1<-geno[1,]
> 
> What's "geno"?
> 
>  > d1<-data.frame(g, e)
> 
> d1 is now e and g cbind'ed together?
> 
>  > summary(glm(e1 ~ g1, data=d1))
> 
> Are "e1" and "g1" elements of "d1"? From what you've told us, I don't 
> know where the error is occurring. Also, if you are having errors, you 
> can more easily isolate the problem by doing:
> 
> fit <- glm(e1 ~ g1, data = d1)
> summary(fit)
> 
> This will at least tell you the problem is in your call to "glm" and not 
> "summary.glm".
> 
> --sundar
> 
> P.S. Please (re-)read the POSTING GUIDE. Most of the time you will 
> figure out problems such as these on your own during the process of 
> creating a reproducible example.
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Gavin Simpson                     [T] +44 (0)20 7679 5522
ENSIS Research Fellow             [F] +44 (0)20 7679 7565
ENSIS Ltd. & ECRC                 [E] gavin.simpsonATNOSPAMucl.ac.uk
UCL Department of Geography       [W] http://www.ucl.ac.uk/~ucfagls/cv/
26 Bedford Way                    [W] http://www.ucl.ac.uk/~ucfagls/
London.  WC1H 0AP.
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%




More information about the R-help mailing list