Re: [R] do glm with two data sets

From: Gavin Simpson <gavin.simpson_at_ucl.ac.uk>
Date: Thu 18 Aug 2005 - 09:01:25 EST

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@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.
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

______________________________________________
R-help@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
Received on Thu Aug 18 09:05:39 2005

This archive was generated by hypermail 2.1.8 : Sun 23 Oct 2005 - 15:27:55 EST