On Oct 8, 2010, at 1:09 PM, Alison Callahan wrote:

See below.

On Fri, Oct 8, 2010 at 1:01 PM, David Winsemius <dwinsem...@comcast.net > wrote:

On Oct 8, 2010, at 12:46 PM, Alison Callahan wrote:

Hello all,

I am trying to perform an ANOVA on some data in a data frame, but when
I try to use lm(), I get the following error:

The question that should have been posed was how did you use lm()?

It could be that the inappropriate use of a factor as a dependent variable was the cause. Did you use something like:

lm(island_id ~ refseq_better, data=dfrm)  # ??

Example:
> dfrm <- data.frame(a=factor(rnorm(10)), b=rnorm(10))
> lm(a ~ b, data=dfrm)
Error in storage.mode(y) <- "double" :
  invalid to change the storage mode of a factor
In addition: Warning message:
In model.response(mf, "numeric") :
  using type="numeric" with a factor response will be ignored



Error in storage.mode(y) <- "double" :
 invalid to change the storage mode of a factor
In addition: Warning message:
In model.response(mf, "numeric") :
 using type="numeric" with a factor response will be ignored

Here is a subset of my data:

 island_id     refseq_better     total        refseq_proportion
fiveprime   threeprime        island_size
     1a            29                  57          0.508771929824561
  11127     201378               190251
     1c            27                  90               0.3
           6303879    6600994            297115
     1d            33                 115         0.28695652173913
 7001283    7421591            420308
     2b            11                  42          0.261904761904762
 4381375    4520137            138762
     2d            27                  81          0.333333333333333
 5203929    5497271            293342
     3a            44                 141         0.312056737588652
 28792      552044              523252

When I use sapply(dataframe,mode) to check the modes of the columns,
this is my output:

     island_id     refseq_better             total
 refseq_proportion
"numeric" "numeric" "numeric" "numeric"
      fiveprime        threeprime       island_size
      "numeric"         "numeric"         "numeric"

So?

mode(factor(1:10))
[1] "numeric"

Storage mode is not the right question. "class" is the correct question.
Best would be to try is.factor()

Looking at the error message, the problem does appear to be with
storage mode ... is this affected by whether the variables are
factors? Note this part of the error:

Error in storage.mode(y) <- "double" :
invalid to change the storage mode of a factor



How do I need to change the format of my data frame so that I do not
get the above error?

Figure out which of your columns are factors and apply the FAQ 7.12

--
David.

Thanks!

Alison Callahan
PhD candidate


David Winsemius, MD
West Hartford, CT


Thanks,

Alison

David Winsemius, MD
West Hartford, CT

______________________________________________
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.

Reply via email to