[R] A bug report?

Liaw, Andy andy_liaw at merck.com
Thu Apr 15 14:03:28 CEST 2004


Your question has been answered by others.  I just want to point out that
you should not be calling summary.lm() directly, but should call the generic
summary() instead.

Andy

> From: Ajay Shah
> 
> Folks,
> 
> I have a strange situation, which I may have isolated as a bug
> report. Or, it could just be that there's something about R that I
> don't know. :-) I have attached the data file and the program file but
> don't know whether these attachments will make it into the list. Here
> is my bugreport.R program --
> 
> --------------------------------------------------------------
> -------------
> buoyancy <- function(year, taxbase, tax, description, plotname) {
>   cat("Simple full OLS regression with all data:\n")
>   logtax = log(tax)
>   logtaxbase = log(taxbase)
>   m = lm(logtax ~ logtaxbase)
>   summary.lm(m)
>   details = summary.lm(m)
> }
> 
> A <- read.table(file="amodi-data.csv", sep=",", col.names=c("year",
>                 "gdp.ag", "gdp.mining", "gdp.manuf", "gdp.elecgas",
>                 "gdp.construction", "gdp.industry", "gdp.services",
>                 "gdp.fc", "indirect.taxes", "subsidies", "j1",
>                 "gdp.mp", "gdp.mp.93", "gdp.deflator", "gdp.fc.93",
>                 "gdp.ag.93", "gdp.industry.93", "gdp.services.93",
>                 "tax.income", "tax.corporation", "tax.direct.others",
>                 "tax.direct", "tax.customs", "tax.excise",
>                 "tax.indirect.others", "tax.indirect", "tax.total"))
> A = subset(A, !is.na(A$tax.total))
> buoyancy(A$year, A$gdp.mp, A$tax.income, "Personal income tax 
> and GDPmp", "p1")
> --------------------------------------------------------------
> -------------
> 
> This program does not work. The summary.lm(m) statement seems to have
> no effect. When I run it, I get:
> 
> $ R --slave < bugreport.R 
> Simple full OLS regression with all data:
> 
> where it is asif the summary.lm(m) statement never occurred. If I put
> in a statement print(m) it works, but the summary.lm(m) does not work.
> 
> Now here's what's weird: Suppose I remove the statement that comes
> AFTER this summary.lm(m) statement. That is, I don't say
>     details = summary.lm(m)
> as the last line of the function. In this case, the program 
> works fine!
> 
> I'm most confused. I can't see how putting in an assignment statement
> AFTER a function call can contaminate a PREVIOUS statement. I would be
> most happy if you could guide me...
> 
> I am running on a nicely-working notebook which runs Debian linux
> kernel 2.4.17, and have R 1.8.1 (2003-11-21). I use the `testing'
> branch of Debian.
> 
>      -ans.
> 
> -- 
> Ajay Shah                                                   Consultant
> ajayshah at mayin.org                      Department of Economic Affairs
> http://www.mayin.org/ajayshah           Ministry of Finance, New Delhi
> 


------------------------------------------------------------------------------
Notice:  This e-mail message, together with any attachments,...{{dropped}}




More information about the R-help mailing list