> On Feb 1, 2017, at 5:28 AM, CHIRIBOGA Xavier <[email protected]>
> wrote:
>
> Dear colleagues,
>
>
> I am trying to perform a GLM. I tried again without using attach()...but
> still is not working.
>
> Do you have any idea to help me?
>
>
> Thank you again,
>
>
> Xavier
>
>
>
> a <- read.table(file.choose(), h<-T)
>> head(a)
> time treatment transinduc
> 1 1 CHA0+Db 1,0768
> 2 1 CHA0+Db 1,0706
> 3 1 CHA0+Db 1,0752
> 4 1 CHA0+Db 1,0689
> 5 1 CHA0+Db 1,1829
> 6 1 PCL+Db 1,1423
>> summary(a)
> time treatment transinduc
> Min. :1.000 CHA0 :10 1,0488 : 6
> 1st Qu.:1.000 CHA0+Db: 9 1,0724 : 4
> Median :1.000 Db : 9 1,0752 : 3
> Mean :1.433 HEALTHY:15 1,0954 : 3
> 3rd Qu.:2.000 PCL :10 1,0001 : 2
> Max. :2.000 PCL+Db :14 1,0005 : 2
> (Other):47
>> m1<-glm(a$transinduc~a$time*a$treatment,data=a,family="poisson")
> Error in if (any(y < 0)) stop("negative values not allowed for the 'Poisson'
> family") :
> valor ausente donde TRUE/FALSE es necesario
> Adem�s: Warning message:
> In Ops.factor(y, 0) : '<' not meaningful for factors
Learning to read R error messages carefully and for full meaning is an
essential step toward full mastery of this wonderful gift from the R Core.
The business about "negative values" is a complete distraction. That was the
consequent of an if statement and was only in there to show you where to look
in the function if you were so inclined . The error is actually being thrown
much earlier in parsing that statement by the "<" operator inside the `if`
statement. The "real" error message that says:
> valor ausente donde TRUE/FALSE es necesario
Or in English:
missing value where TRUE/FALSE needed
Examine this code:
> x <- factor(1:5)
> y<- 1:5
> glm( x ~ y, family="poisson")
Error in if (any(y < 0)) stop("negative values not allowed for the 'Poisson'
family") :
missing value where TRUE/FALSE needed
In addition: Warning message:
In Ops.factor(y, 0) : ‘<’ not meaningful for factors
Because the "<" operator is not defined for factors the result that is passed
to `if` is of length 0. Setting the factor variable on the RHS and using the
integer values on hte LHS succeeds.
> glm( y ~ x, family="poisson")
Call: glm(formula = y ~ x, family = "poisson")
Coefficients:
(Intercept) x2 x3 x4 x5
4.676e-11 6.931e-01 1.099e+00 1.386e+00 1.609e+00
Degrees of Freedom: 4 Total (i.e. Null); 0 Residual
Null Deviance: 3.591
Residual Deviance: 6.661e-16 AIC: 24.35
Duncan Murdoch points out that fractional values in the LHS of a formula for
Poisson regression will not be accepted (since the poisson distribution is
discrete), and if you do in fact need Poisson regression that you would need to
use the quasi-binomial family.
On the other hand ... If those were counts in the thousands and needed to be
converted to "whole numbers", you might need to convert the factor values to
numeric with:
a$transinduc <- as.numeric( gsub( "[,]", "", a$transinduc) )
--
David.
>
> [[alternative HTML version deleted]]
Rhelp is a plain text mailing list.
>
> ______________________________________________
> [email protected] mailing list -- To UNSUBSCRIBE and more, see
> 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
Alameda, CA, USA
______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
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.