Arjun Bhandari <arb.em <at> adia.ae> writes:
> I conduct a univariate regression with lm function. I would like to get
> the p value for the regression. Is there a method that would enable me to
> extract the p value into a variable.
# From lm docs (Sorry, Annette, for misusing your data)
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
lm.D90 <- lm(ctl ~ trt)
# let's look if it is in lm..
str(lm.D90)
# mmm.. looks like there are no p-test results
# try summary
sum.lm = summary(lm.D90)
sum.lm
# .. coming closer.
# Colum Pr(>|t|), row trt is what we are looking for
# Let's look into the structure
str(sum.lm)
# $coeffients has the wanted
sum.lm$coefficients
# looks good. We could use this, but better use the accessor function
# Check the documentation, but coef is always a good try
cf = coef(sum.lm)
#now pick the right column
pslope = cf["trt","Pr(>|t|)"]
pslope ##
# Could also use index, but less safe in general, even if the
# "Pr(.." is definitively ugly
cf[2,4]
# In general, the $ approach is not recommened, if there is an
# accessor funtion, use it. The closest (with no p-values) is
confint(lm.D90)
# Which probably tells more than the beloved p-values.
# The better the journal's referees, the more they prefer confints over p