Skip to content
Prev 308482 / 398506 Next

Newly installed version; can't run lm function

On Oct 19, 2012, at 2:26 PM, Michael Grant wrote:

            
This is not surprising for two reasons. Crawley's presumptuously named text "The R Book" teaches students to use `attach`, leaving them unprepared to deal with the rather predictable confusion that unfortunate practice leads to. (The second reason is that you have not yet used `attach`.)
And when I do that, I do not get the same result:

test <- read.table(text="  ozone garden
1      3      A
2      5      B
3      4      A
4      5      B
5      4      A
6      6      B
7      3      A
8      7      B
9      2      A
10     4      B
11     3      A
12     4      B
13     1      A
14     3      B
15     3      A
16     5      B
17     5      A
18     6      B
19     2      A
20     5      B", header=TRUE)
is.data.frame(test)
#[1] TRUE
is.numeric(test$ozone)
#[1] TRUE
is.factor(test$garden)
#[1] TRUE
lm(ozone~garden)

# Error which seems perfectly expected without a 'data' argument.
attach(test)
is.numeric(ozone)
####-------

# I get
[1] TRUE

So you have done something else. What it is we cannot tell. Why not send a letter to Crawley? He's the one you paid money for that fat book, and whose dataset you are importing in some unspecified manner. Or perhaps use:

str(test)